View Definition: genres_with_albums

→ Data

Source Diagram

classDiagram
    class genres_item["genres.item"]
    class albums_by_genre_item["albums_by_genre.item"]
            albums_by_genre_item --> genres_item : id
            albums_by_genre_item --> genres_item : genre_id
            albums_by_genre_item --> genres_item : albums.genre_id
            genres_item --> genres_item : parent_id

Definition

From

albums_by_genre

Join

To On (left = right) As Pre-join where Flatten
genres genre_id = id genre_matches {of: genre_matches, as: genre, preserve_empty: false}

Select

Item As
genre_id genre_id
genre genre
albums albums

Shape

Type: genres_with_albums.item

id type required validation metadata
genre_id string {description: Id of the album's primary genre.}
genre object yes
genre.id string yes
genre.name string yes {description: Display name of the genre.}
genre.parent_id string {description: Id of the parent genre. Omitted for top-level genres.}
albums genres_with_albums.item.albums.item[] yes

Type: genres_with_albums.item.albums.item

id type required validation metadata
id string yes
title string yes {description: Album title.}
artist_id string yes {description: Id of the artist who released this album.}
label_id string {description: Id of the label that released this album.}
genre_id string {description: Id of the album's primary genre.}
year integer yes {description: Year of release.}
is_live boolean {description: 'True for concert recordings, false (or omitted) for studio albums.'}
liner_notes string {description: Id of the prose record holding this album's liner notes (a contents-relative path without extension). Optional - only some albums have liner notes.}
cover string {description: 'Id of the cover-art blob (a contents-relative path, extension included). Optional - only some albums ship cover art.'}