![](/img/trans.png)
[英]Select all columns from one table and one from another where column equals variable
[英]Select all in table where a column in table 1 exists in another table and a second column equals a variable in second table
我知道标题令人困惑,但它是我能解释的最好的。 基本上我正在为拥有两家电影院的公司开发一个电影院列表网站。 所以我有一个数据库,其中包含两个表“Films”和“Listings”,其中包含两个电影院的数据。
如果电影名称出现在列表中,我试图为一部电影选择所有电影和他们的数据(因为两部电影院共享所有电影,但在表格中但可能没有相同的电影显示)
这是我想出来的但是我遇到了一个问题,因为当“SELECT DISTINCT”返回多个结果时,它显然无法与tbl Films上的FilmName匹配。 如何检查tblFilms上所有FilmNames的值?
SELECT *
FROM tblFilms
WHERE FilmName = (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)
如果子查询返回多个值,则使用IN
,
SELECT *
FROM tblFILMS
WHERE FilmName IN (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)
解决thius的另一种方法是使用JOIN
( 我推荐 )
SELECT DISTINCT a.*
FROM tblFILMS a
INNER JOIN tblListings b
ON a.FilmName = b.FilmName AND
b.Cimema = 1
为了更快地执行查询, FilmName
在两个表上的FilmName
上添加一个INDEX
。
如果您有表格的模式,那将有所帮助。
也就是说,我相信你想要看的是JOIN关键字。 (内/外/左/等)。 这正是JOIN的意图(即你的头衔)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.