Sql 如果表1中的一列存在于另一个表中,且第二列等于第二个表中的一个变量,请选择“表中的全部”
我知道这个标题令人困惑,但这是我能解释的最好的了。基本上,我正在为一家拥有两家电影院的公司开发一个影院列表网站。因此,我有一个数据库,其中有两个表“电影”和“列表”,其中包含两家电影院的数据 如果电影名称出现在列表中,我将尝试选择一家电影院的所有电影及其数据(因为两家电影院共享所有电影,但表中的电影可能不相同) 这是我想到的,但我遇到了一个问题,因为当“选择不同”返回多个结果时,它显然无法与tbl电影上的电影名称匹配。 如何检查TBLFILM上所有胶片名称的此值Sql 如果表1中的一列存在于另一个表中,且第二列等于第二个表中的一个变量,请选择“表中的全部”,sql,select,Sql,Select,我知道这个标题令人困惑,但这是我能解释的最好的了。基本上,我正在为一家拥有两家电影院的公司开发一个影院列表网站。因此,我有一个数据库,其中有两个表“电影”和“列表”,其中包含两家电影院的数据 如果电影名称出现在列表中,我将尝试选择一家电影院的所有电影及其数据(因为两家电影院共享所有电影,但表中的电影可能不相同) 这是我想到的,但我遇到了一个问题,因为当“选择不同”返回多个结果时,它显然无法与tbl电影上的电影名称匹配。 如何检查TBLFILM上所有胶片名称的此值 SELECT * FROM t
SELECT *
FROM tblFilms
WHERE FilmName = (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)
如果子查询返回多个值,请在中使用
SELECT *
FROM tblFILMS
WHERE FilmName IN (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)
另一种解决方法是使用JOIN
(我推荐)
为了更快地执行查询,请在两个表的FilmName
上添加索引。如果您有表的模式,这会有所帮助
也就是说,我相信您要查看的是JOIN关键字。(内/外/左/等)。这正是JOIN的本意(即你的头衔)。完美!非常感谢。我同意你的建议。快速提问。我不知道是将其设置为作为存储过程调用还是作为视图调用。哪一种被认为是最佳实践?我假设我的观点是正确的?你在用什么RDBMS
代表关系数据库管理系统RDBMS是SQL的基础,也是所有现代数据库系统(如MS SQL Server、IBM DB2、Oracle、MySQL等)的基础<代码>视图在MySQL
中非常糟糕。再次感谢!把我从洞里救出来!
SELECT DISTINCT a.*
FROM tblFILMS a
INNER JOIN tblListings b
ON a.FilmName = b.FilmName AND
b.Cimema = 1