Run SQL file setup_ex1.sql (cf. README.md)
SELECT li.id as id, li.name as name, c.id as cid, c.name as cname
FROM lists as li
JOIN cards as c ON li.id = c.list_idSELECT li.id, li.name,
json_agg(
json_build_object('id', c.id, 'name', c.name)
) as cards
FROM lists as li
JOIN cards as c ON li.id = c.list_id
GROUP BY li.id;SELECT u.id, u.lastname, u.firstname, c.id, c.name
FROM users as u
INNER JOIN users_cards as uc ON uc.user_id = u.id
INNER JOIN cards as c ON uc.card_id = c.id;SELECT u.id,
CONCAT(u.lastname,' ', u.firstname) as name,
json_agg(
json_build_object('id', uc.card_id, 'name', c.name)
) as cards
FROM users as u
JOIN users_cards as uc ON u.id = uc.user_id
JOIN cards as c ON c.id = uc.card_id
GROUP BY u.id;SELECT li.id, li.name, c.id as cid, c.name as cardname, u.id as uid,
CONCAT(u.lastname,' ', u.firstname) as username
FROM lists as li
JOIN cards as c ON li.id = c.list_id
JOIN users_cards as uc ON c.id = uc.card_id
JOIN users as u ON u.id = uc.user_id
ORDER BY li.id;SELECT li.id, li.name, JSON_AGG(
JSON_BUILD_OBJECT(
'id', uc.card_id, 'name', c.name, 'user',
JSON_BUILD_OBJECT(
'id', uc.user_id, 'name',
CONCAT(u.lastname,' ', u.firstname)
)
)
) as cards
FROM lists as li
JOIN cards as c ON li.id = c.list_id
JOIN users_cards as uc ON c.id = uc.card_id
JOIN users as u ON u.id = uc.user_id
GROUP BY li.id
ORDER BY li.id;(Celle-ci, elle a été galère à faire !)
SELECT
li.id as id,
li.name as name,
JSON_AGG(
JSON_BUILD_OBJECT('id', c.id, 'name', c.name, 'users', ucr.users)
) as cards
FROM
(
SELECT uc.card_id as cid,
JSON_AGG(
JSON_BUILD_OBJECT(
'id', uc.user_id,
'name', CONCAT(u.lastname,' ', u.firstname)
)
) as users
FROM users_cards as uc
JOIN users as u ON u.id = uc.user_id
GROUP BY uc.card_id
) ucr
JOIN cards as c ON ucr.tid = c.id
JOIN lists as li ON li.id = c.list_id
GROUP BY li.id
ORDER BY li.id;