【发布时间】:2018-01-24 04:10:07
【问题描述】:
1) 查询:
SELECT INS_NAME
FROM INSTRUCTOR
WHERE EXISTS(SELECT DEPT_NAME
FROM DEPARTMENT
WHERE DEPT_ID = INSTRUCTOR.DEPT_ID AND DEPT_BUILDING = 'JOHNS');
2) 查询:
SELECT INS_NAME
FROM INSTRUCTOR
WHERE EXISTS(SELECT DEPT_NAME
FROM DEPARTMENT
WHERE DEPT_BUILDING = 'JOHNS');
代码 1 和 2 产生不同的输出,请帮助我理解原因。
(教师表)
ins_id ins_name dept_id ins_sal tax
27 DHIRAJ 4 200
28 RAHUL 4 500
34 HIO 4 100 2
90 SURYA 5 120 30
33 VINNY 6 100 11
(部门表)
DEPT_BUILDING DEPT_NAME DEPT_ID
THOMAS BIO 4
JOHNS CHEM 5
JOHNS CSE 6
【问题讨论】:
-
有什么理由使用exists而不是join?
-
您使用的是 MySQL 还是 MS SQL Server?不要标记未涉及的产品。
-
Salmon ,我只是在测试,没有其他理由不使用 join 。
标签: mysql sql sql-server