19 lines
580 B
Text
19 lines
580 B
Text
CREATE OR REPLACE VIEW optimized_concerts AS
|
|
SELECT
|
|
c.id,
|
|
c.date,
|
|
c.notes,
|
|
CASE WHEN c.artist IS NOT NULL THEN
|
|
json_build_object('name', a.name_string, 'url', a.slug)
|
|
ELSE
|
|
json_build_object('name', c.artist_name_string, 'url', NULL)
|
|
END AS artist,
|
|
json_build_object('name', v.name, 'name_short', trim(split_part(v.name, ',', 1)), 'latitude', v.latitude, 'longitude', v.longitude, 'notes', v.notes) AS venue,
|
|
c.notes AS concert_notes
|
|
FROM
|
|
concerts c
|
|
LEFT JOIN artists a ON c.artist = a.id
|
|
LEFT JOIN venues v ON c.venue = v.id
|
|
ORDER BY
|
|
c.date DESC;
|
|
|