I'm currently encountering a problem in writing my SQL query,
I have 3 tables :
- video_games
| id | name |
|---|---|
| 1 | Halo |
| 2 | Hulk |
- games_genres
| id | game_id | |
|---|---|---|
| 1 | 1 | (genre id 1 to game id 1) |
| 2 | 1 | (genre id 2 to game id 1) |
| 2 | 2 | (genre id 2 to game id 2) |
| 3 | 2 | (genre id 3 to game id 2) |
- games_tags
| id | game_id | |
|---|---|---|
| 2 | 1 | (tag id 2 to game id 1) |
| 2 | 2 | (tag id 2 to game id 2) |
| 1 | 2 | (tag id 1 to game id 2) |
HERE is what I'd like to have as result , looking for game with most genre IN(2,3) and most tags IN(1)
| videos_games.name | count_tags | common_tags | count_genres | common_genre |
|---|---|---|---|---|
| Hulk | 1 | 1 | 2 | 2,3 |
| Halo | 0 | empty | 1 | 2 |
I currently have this, which is a syntax error
SELECT name,id,
COUNT(distinct games_genres.id) as num_genres, COUNT(distinct
games_tags.id) as num_genres INNER JOIN games_genres ON
(videos_games.id = games_genres.game_id) INNER JOIN games_tags ON
(videos_games.id = games_tags.game_id)
WHERE
games_to_genres.genre_id IN(3,10) games_tags.genre_id IN(31,7)
ORDER BY
deus_games.num_genres DESC
If anyone ever done that, I'll be reaaally thankfull !