繁体   English   中英

在表中选择all表,其中表1中的列存在于另一个表中,第二列等于第二个表中的变量

[英]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.

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