我的数据库中有两个表。
Movies 桌子:
+----------------------------------------
| ID | title | timestamp |
+----------------------------------------
| 1 | The host | time |
| 2 | Fight Club | time |
| 4 | 21 | time |
----------------------------------------+
Run Code Online (Sandbox Code Playgroud)
Movie_Links 桌子:
+---------------------------------------+
| ID | link | movie_id |
+---------------------------------------+
| 1 | some link | 1 |
| 2 | some link | 1 |
| 3 | some link | 1 |
+---------------------------------------+
Run Code Online (Sandbox Code Playgroud)
目前我只从Movies表中选择行title,例如:
SELECT * FROM `Movies`
WHERE `title` LIKE '%The Host%'
ORDER BY `timestamp` DESC DESC LIMIT 30
Run Code Online (Sandbox Code Playgroud)
但我想要做的是与上面相同的查询,但连接Movie_Links表,其中movie_id等于Movies表的ID并获取所有具有Movie_id等于1.
SQL 连接两个 ID 匹配的表
SELECT *
FROM Movies
LEFT JOIN Movie_Links
ON Movies.ID = Movie_Links.movie_id;
Run Code Online (Sandbox Code Playgroud)
小智 5
测试以下查询:
SELECT ml.id,m.title,m.timestamp, ml.link
FROM movies m ,Movie_Links ml
WHERE m.id=ml.movie_id and title LIKE '%The Host%'
Run Code Online (Sandbox Code Playgroud)
BR,
只需加入匹配的列即可:
SELECT * FROM movies m
JOIN MovieLinks ml
ON ml.movie_id = m.id
WHERE m.title LIKE '%The Host%'
Run Code Online (Sandbox Code Playgroud)