私はMYSQLを使用していて、ここに私が持っているスキーマがあります:
これが私の最初のテーブルですuser
+-----+------------------+
| id | name |
+-----+------------------+
| 101 | Daniel Radcliffe |
| 102 | Elijah Wood |
| 103 | Robert Downey Jr |
+-----+------------------+
これが私の2番目のテーブルですmovie
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Harry Potter 1 |
| 2 | Harry Potter 2 |
| 3 | Harry Potter 3 |
| 4 | Lord of the Rings 1 |
| 5 | Lord of the Rings 2 |
| 6 | Lord of the Rings 3 |
| 7 | Iron Man 1 |
| 8 | Iron Man 2 |
+----+---------------------+
これが私の最後のテーブルですlist
+---------+----------+
| user_id | movie_id |
+---------+----------+
| 101 | 1 |
| 101 | 2 |
| 101 | 3 |
| 102 | 4 |
| 102 | 5 |
| 102 | 6 |
| 103 | 7 |
| 103 | 8 |
+---------+----------+
name
とmovie
を次のように並べて表示したいと思います。
+------------------+--------------------+
| Daniel Radcliffe | Harry Potter 1 |
| Daniel Radcliffe | Harry Potter 2 |
| Daniel Radcliffe | Harry Potter 3 |
| Elijah Wood | Lord of the Rings 1|
| Elijah Wood | Lord of the Rings 2|
| Elijah Wood | Lord of the Rings 3|
| Robert Downey Jr | Iron Man 1 |
| Robert Downey Jr | Iron Man 2 |
+------------------+--------------------+
list
テーブルには、user_idとmovie.idをそれぞれ参照するuser_idとmovie_idの外部キーがあります。では、JOINを使用して上記のデータを表示するにはどうすればよいですか。
SELECT user.name, movie.name
FROM user, movie, list
WHERE list.user_id = user.id
AND list.movie_id = movie.id
ORDER BY 1,2;
または、クエリテキストでWord JOIN
を表示する必要がある場合
SELECT user.name, movie.name
FROM user
JOIN list ON list.user_id = user.id
JOIN movie ON list.movie_id = movie.id
ORDER BY 1,2;