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;

操作符执行一个
交叉联接
——一个完全笛卡尔乘积。这两张桌子没有理由这样做。

谢谢,这就是我想要的解释。谢谢,很抱歉给您带来不便。