【发布时间】:2013-12-09 02:35:02
【问题描述】:
更新 - 好的,这三个答案都很有道理,我会尝试每一个,因为我很好奇是否有性能 +/- 但我不确定我是否有足够的测试数据在我的表格中确定。
我正在尝试查看表 A 并搜索表 B 或表 C 中是否存在用户,以便从表 A 中找到不存在于其他两个表中的至少一个中的任何人(他们不需要同时存在于B或C中)
类似的东西,但不必在下面几乎相同的语句
SELECT emp_id
FROM
tableA
LEFT JOIN
TableB
ON
tableA.emp_id = tableB.emp_id
WHERE
TableA.emp_id IS NULL
SELECT emp_id
FROM
tableA
LEFT JOIN
TableC
ON
tableA.emp_id = tableC.emp_id
WHERE
TableA.emp_id IS NULL
Table A
+---------+--------+-----------+
| Emp_ID | Status | hire_date |
+---------+--------+-----------+
| 12345 | happy | 10/10/2005|
| 54321 | sad | 12/01/2009|
+---------+--------+-----------+
Table B
+---------+--------+
| Emp_ID | Weight |
+---------+--------+
| 12345 | 185 |
| 54321 | 150 |
+---------+--------+
Table C
+---------+--------+
| Emp_ID | City |
+---------+--------+
| 12345 | Chicago|
| 54321 | Atlanta|
+---------+--------+
感谢您的任何建议!
【问题讨论】:
标签: sql sql-server left-join