Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果表1中的一列存在于另一个表中,且第二列等于第二个表中的一个变量,请选择“表中的全部”_Sql_Select - Fatal编程技术网

Sql 如果表1中的一列存在于另一个表中,且第二列等于第二个表中的一个变量,请选择“表中的全部”

Sql 如果表1中的一列存在于另一个表中,且第二列等于第二个表中的一个变量,请选择“表中的全部”,sql,select,Sql,Select,我知道这个标题令人困惑,但这是我能解释的最好的了。基本上,我正在为一家拥有两家电影院的公司开发一个影院列表网站。因此,我有一个数据库,其中有两个表“电影”和“列表”,其中包含两家电影院的数据 如果电影名称出现在列表中,我将尝试选择一家电影院的所有电影及其数据(因为两家电影院共享所有电影,但表中的电影可能不相同) 这是我想到的,但我遇到了一个问题,因为当“选择不同”返回多个结果时,它显然无法与tbl电影上的电影名称匹配。 如何检查TBLFILM上所有胶片名称的此值 SELECT * FROM t

我知道这个标题令人困惑,但这是我能解释的最好的了。基本上,我正在为一家拥有两家电影院的公司开发一个影院列表网站。因此,我有一个数据库,其中有两个表“电影”和“列表”,其中包含两家电影院的数据

如果电影名称出现在列表中,我将尝试选择一家电影院的所有电影及其数据(因为两家电影院共享所有电影,但表中的电影可能不相同)

这是我想到的,但我遇到了一个问题,因为当“选择不同”返回多个结果时,它显然无法与tbl电影上的电影名称匹配。 如何检查TBLFILM上所有胶片名称的此值

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