I have two tables linked in a junction table like this :
REATE TABLE eventsUsers (
eventId INT REFERENCES events (eventId),
userId INT REFERENCES users (userId),
PRIMARY KEY (eventId, userId)
);
I want to return all the events with their user logins. So far I did the following SQL request
:
SELECT events.eventId, events.name, users.login
FROM events
LEFT OUTER JOIN eventsUsers ON events.eventId = eventsUsers.eventId
LEFT OUTER JOIN users ON users.userId = eventsUsers.userId
And it returns :
eventid | name | login
---------+------------+-------
1 | event1 | admin
1 | event1 | user
2 | deuxieme | admin
3 | troisieme3 |
But I would like it to return something like this :
eventid | name | login
---------+------------+-------
1 | event1 | [admin, user]
2 | deuxieme | admin
3 | troisieme3 |
With one line for one event and an array (or list) of the user logins.
So my question is : is it possible to do this in SQL
and how?
Edit : I use Postgresql
.