我知道这个标题令人困惑,但这是我能解释的最好的了。基本上我正在为一家拥有两家影院的公司开发一个影院列表网站。因此,我有一个数据库,其中包含两个表"Films“和"Listings”,其中包含两家影院的数据。
如果电影名称出现在列表中,我会尝试为一家电影院选择所有电影及其数据(因为两家电影院共享所有电影,但在表中,但可能没有相同的电影放映)
这是我想出来的,但我遇到了一个问题,因为当"SELECT DISTINCT“返回一个以上的结果时,它显然不能与tbl Films上的FilmName匹配。如何检查tblFilms上所有FilmNames的此值?
SELECT *
FROM tblFilms
WHERE FilmName = (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)发布于 2013-03-07 00:27:30
如果子查询返回多个值,则使用IN
SELECT *
FROM tblFILMS
WHERE FilmName IN (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)另一种解决方法是使用JOIN (我推荐)
SELECT DISTINCT a.*
FROM tblFILMS a
INNER JOIN tblListings b
ON a.FilmName = b.FilmName AND
b.Cimema = 1为了加快查询执行速度,请在两个表的FilmName上添加一个INDEX。
发布于 2013-03-07 00:29:23
如果您有表的模式,这将有所帮助。
也就是说,我相信您想要查看的是JOIN关键字。(内部/外部/左侧/等等)。这正是JOIN的目的(即你的头衔)。
https://stackoverflow.com/questions/15252752
复制相似问题