стол соединения mysql

У меня есть 4 таблицы.

Table A that has users - (user_id, username, and name) Table B that has tokens - (token_id, user_id). Each user has 10 token entries. Each token is assigned to only one user. A user has multiple tokens (10) Table C that is arcades games - (arcade_id, token_id, name, levels, lives). Only one token can be assigned to one arcade game only. Table D that is prizes - (prize_id, token_id, name, length, width, height). Only one token can be assigned to one prize only.

Токен присваивается либо аркадной игре, либо призу, либо ничему, но не обоим.

Мой вопрос заключается в том, как настроить запрос на соединение MySQL, чтобы выяснить, какие токены для данного пользователя назначены игре или призу или еще не были назначены. Являются ли мои таблицы оптимальными? Или у вас есть предложения для другого макета?

Вот мои таблицы:

mysql> select * from users;

+---------+--------+
| user_id | name   |
+---------+--------+
|       1 | User 1 |
|       2 | User 2 |
|       3 | User 3 |
|       4 | User 4 |
+---------+--------+

mysql> select * from tokens;

+----------+---------+
| token_id | user_id |
+----------+---------+
|        1 |       1 |
|        2 |       1 |
|        3 |       2 |
|        4 |       2 |
|        5 |       2 |
|       11 |       2 |
|        6 |       3 |
|        7 |       3 |
|       10 |       3 |
|        8 |       4 |
|        9 |       4 |
+----------+---------+

mysql> select * from prizes;

+----------+----------+-----------+
| prize_id | token_id | prizename |
+----------+----------+-----------+
|        1 |        4 | prize 1   |
|        2 |        7 | prize 2   |
|        3 |        8 | prize 3   |
|        4 |        9 | prize 4   |
+----------+----------+-----------+

mysql> select * from arcade;

+-----------+----------+----------+
| arcade_id | token_id | gamename |
+-----------+----------+----------+
|         1 |        1 | game 1   |
|         2 |        2 | game 2   |
|         3 |        3 | game 3   |
|         4 |        5 | game 4   |
|         5 |       11 | game 6   |
+-----------+----------+----------+

Я хотел бы запрос SQL, где я могу получить следующую информацию:

Для пользователя 1 у него есть 2 токена - идентификатор токена 1 назначен игре 1, а идентификатор токена 2 назначен игре 2

Или для пользователя 2 - у него 4 токена - идентификатор 3 токена назначен игре 3, идентификатор 4 токена назначен призу 1, идентификатор 5 токена присвоен игре 4.

Или для пользователя 3 - у него 3 токена - идентификатор токена 6 еще не назначен, идентификатор токена 7 - приз 2, идентификатор токена 10 не назначен

и так далее.

Я хотел бы построить строку запроса MySQL, как это

Select **** 
  from ***** 
 Where user_id = 1

Где я указываю идентификатор пользователя и получаю всю информацию выше.

Ответы на вопрос(1)

Ваш ответ на вопрос