나는 4 개의 테이블을 가지고있다. 사용자가있는mysql join table
- 표 A - (
user_id, username, and name
) - 표 B 토큰을 갖는 - (
token_id, user_id
). 각 사용자는 10 개의 토큰 항목을 갖습니다. 각 토큰은 한 명의 사용자에게만 할당됩니다. 사용자가 여러 개의 토큰을 가지고 있습니다 (10) - 아케이드 게임 인 테이블 C - (
arcade_id, token_id, name, levels, lives
)입니다. 하나의 아케이드 게임에만 하나의 토큰 만 지정할 수 있습니다. - 표 D는 상품 - (
prize_id, token_id, name, length, width, height
)입니다. 하나의 상품에만 하나의 토큰 만 지정할 수 있습니다.
토큰은 아케이드 게임이나 상금 또는 아무것도 아닌 상금에 할당됩니다.
제 질문은 주어진 사용자의 토큰이 게임이나 상금에 할당되었거나 아직 할당되지 않은 것을 알아 내기 위해 MySQL 가입 쿼리를 설정하는 것입니다. 내 테이블 레이아웃이 최적입니까? 아니면 다른 레이아웃에 대한 제안 사항이 있습니까? - 토큰 ID 1이 게임에 할당 된 사용자의 경우 1
, 그들은이 토큰을 가지고 :
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이고 토큰 ID 2는 게임 2에 할당됩니다.또는 사용자 2 - 토큰 ID 3은 게임 3에 할당되고 토큰 ID 4는 상금 1에 할당되고 토큰 ID 5는 게임 4에 할당됩니다 .
또는 3 사용자 - 3 토큰 - 토큰 ID 6이 아직 할당되지 않았습니다. 토큰 ID 7은 상금 2입니다. 토큰 ID 10은 할당되지 않았습니다.
등등.
나는 사용자 ID를 지정하고 위의 모든 정보를 얻을 곳이
Select ****
from *****
Where user_id = 1
같은 MySQL의 쿼리 문자열을 구축하고 싶습니다.
http://sqlfiddle.com에서 샘플 데이터를 제공해 주실 수 있습니까? –