繁体   English   中英

从多个表中获取数据mysql php

[英]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  t1.id, t1.movieid, t1.description, t2.image FROM SHOWS as t1
INNER JOIN 
MOVIES as t2 ON t1.id = t2.id 

一些SQL加入文档

或者您可以尝试一下,我不确定女巫的身份是从哪里来的:

SELECT id, movieid, description, image FROM SHOWS 
INNER JOIN MOVIES
ON 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM