Mysql 为什么选择结果重复4次?
我有这些桌子: 当我尝试在它们之间进行选择时,会得到Mysql 为什么选择结果重复4次?,mysql,sql,Mysql,Sql,我有这些桌子: 当我尝试在它们之间进行选择时,会得到APELLIDO列: SELECT APELLIDO FROM EMP, DEPT WHERE (EMP.DEPT_NO = 30); 它显示了正确的信息,但重复了4次!!! 为什么会这样?对不对?另一个事实是如果我用另一句话 SELECT APELLIDO FROM EMP WHERE DEPT_NO IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_NO = 30); 它显示正确,但为什么其他命令会这样
APELLIDO
列:
SELECT APELLIDO FROM EMP, DEPT WHERE (EMP.DEPT_NO = 30);
它显示了正确的信息,但重复了4次!!!
为什么会这样?对不对?另一个事实是如果我用另一句话
SELECT APELLIDO FROM EMP WHERE DEPT_NO IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_NO = 30);
它显示正确,但为什么其他命令会这样做?谢谢。切勿在FROM
子句中使用逗号始终使用正确、明确、标准的JOIN
语法:
然而,在您的情况下,您甚至不需要加入
。所有信息都在EMP
中:
SELECT EMP.APELLIDO
FROM EMP
WHERE EMP.DEPT_NO = 30;
,
操作符执行一个交叉联接
——一个完全笛卡尔乘积。这两张桌子没有理由这样做。谢谢,这就是我想要的解释。谢谢,很抱歉给您带来不便。