I have 3 MySQL tables that describe a game:

1. gamelist {gameId, ... with Primary(gameId) } = Stores information about each game session.
2. userlist {userId, ... with Primary(userId) } = Stores each user's information.
3. game2user {gameId, userId ... with Primary(gameId, userId) } = Stores which users are involved in each game session (one game session to two or more users).

Now, for a certain userId, I need to retrieve a list of games that include the names of all the users involved in that game session.

The best I came out with so far is:

```
SELECT gl.gameid, gl.type, [...], ul.userid, ul.username
FROM userlist as ul, gamelist as gl, game2users as g2u
WHERE g2u.userid = a_certain_numeric_id AND
      ul.userid = g2u.userid AND
      gl.gameid = g2u.gameid`

```

This retrieves the unique rows from games list, but it only fetches the given user's username and not his co-players.

The question is how can I do this efficiently in terms of performance (time) and preferably without doing separate queries? Thanks.