[英]Retrieving data from multiple tables mysql php
我有2张桌子电影和演出。
电影表包含:
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'");
在这里,我正在写没有连接的所有内容,因此都可以使用嵌套选择查询
select movies.image from movies where movies.id in(Select shows.movieid form shows where shows.id= 1);
您可以同时从一台服务器的多个表中检索数据。 有很多方法可以实现此操作,称为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
有关更多信息,请参见https://dev.mysql.com/doc/refman/5.7/en/join.html上的文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.