更新 - 好吧三個答案都是有道理的,我會嘗試每個,因爲我很好奇,如果有一個表現+/-,但我不知道我我的表格中有足夠的測試數據來確定。正確左三個表加入 - SQL
我想查看錶A並搜索以查看用戶是否存在於表B或表C中,以便找到任何形式的表A,其中至少有一個表不存在於其他兩個表中他們並不需要在既要存在,就不必具有幾乎相同的語句下面
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|
+---------+--------+
感謝您的任何建議,B或C)
像這樣的事情,但是!
同意,當我將我的WHERE複製到論壇時,我犯了一個錯誤,它應該是tableB.emp_id,但是當我使用OR而不是像上面顯示的AND時,我得到一堆結果,我認爲它正在向A中的每個人展示誰不在B中,然後每個人都不在C中。當我使用AND時,它是有效的。我很困惑,因爲我得到了一次emp_id顯示兩次,但我意識到我有一個重複,需要選擇DISTINCT,它的工作。謝謝。 – Jeremy
使用或者你有行不在B或不在C和右,這可能會給你更多的結果。 – ARA