我有两张表MOVIES和SHOWS。
MOVIES 表包含:
id, name, image, description.
SHOWS 表包含:
id, movieid, description.
我正在执行mysql语句从SHOWS表中检索记录,我正常获取所有记录。我再次执行另一个mysql语句,根据我从第一次查询得到的电影表id从MOVIES表中获取图像。 有没有简单的方法从SHOWS表中检索所有记录以及电影图像?
这些是我的疑问:
$qry1 = mysql_query("SELECT * FROM shows WHERE id='1'");
$res = mysql_fetch_array($qry1);
$movieid = $res['movieid'];
$qry2 = mysql_query("SELECT image FROM movies WHERE id='$movieid'");
答案 0 :(得分:1)
SELECT t1.id, t1.movieid, t1.description, t2.image FROM SHOWS as t1
INNER JOIN
MOVIES as t2 ON t1.id = t2.id
一些sql join docs
或者你可以尝试这个,我不确定女巫是从哪里来的:
SELECT id, movieid, description, image FROM SHOWS
INNER JOIN MOVIES
ON id = movieid
一些外键docs
答案 1 :(得分:0)
这里我写的是加入你可以使用嵌套的选择查询
select movies.image from movies where movies.id in(Select shows.movieid form shows where shows.id= 1);
答案 2 :(得分:0)
您可以同时从一个服务器检索多个表中的数据。有很多方法可以实现这个名为join
的操作。其中一种可能性是LEFT JOIN
这样:
SELECT t1.field1, t1.field2,..., t2.field1, t2.field2, ..., t2.fieldn
FROM table1 AS t2
LEFT JOIN talble2 AS t2 ON t2.some_field = t1.anothed_filed
WHERE some_condition
在你的情况下:
SELECT s.*, m.image
FROM SHOWS AS s
LEFT JOIN movies AS m ON s.movieid = m.id
WHERE some_condition
上的文档