我执行了一条 SQL 语句,结果一团糟。我无法理解这个输出是怎么来的。我的员工表是: Emp_Id 是主键,而 dept_no 是其他表的外键。
EMP_ID EMP_NAME DEPT_NO MGR_NAME MGR_NO
---------- -------------------- ---------- ---------- -----------
111 Anish 121 Tanuj 1123
112 Aman 122 Jasmeet 1234
1123 Tanuj 122 Vipul 122
1234 Jasmeet 122 Anish 111
122 Vipul 123 Aman 112
100 Chetan 123 Anoop 666
101 Antal Aman
1011 Anjali 126
1111 Angelina 127
我的 dep1 表是:
DEPT_ID DEPT_NAME
---------- -------------
121 CSE
122 ECE
123 MEC
并且这两个表根本没有链接。
SQL 查询是:
SQL> select emp_name
from employee
where dept_no IN (select dept_no from dep1 where dept_name='MEC');
输出是:
EMP_NAME
--------------------
Anish
Aman
Tanuj
Jasmeet
Vipul
Chetan
Anjali
Angelina
8 rows selected.
如果我将 where 条件更改为 dept_name='me' 它不会返回任何行。有人可以解释为什么执行没有产生错误,因为 dept_no 不是 dep1 表的列。以及如何生成输出。