假設我有以下SQL表employee
,並且想回答「與Joe(除Joe本人之外)位於同一位置的問題?」使用自聯接:如何篩選SQL中自聯接中的WHERE語句中所需的值
| name | location |
|---------|-----------|
| Joe | New York |
| Sunil | India |
| Bob | New York |
| Melissa | Kentucky |
要回答這個問題,我可以這樣寫:
SELECT employee_name
FROM (
SELECT DISTINCT e1.name as employee_name
FROM employee e1
JOIN employee e2 ON e1.location = e2.location
WHERE e2.name = "Joe"
)
WHERE employee_name <> "Joe"
有沒有辦法只使用一個SELECT
語句來得到這樣的結果?不知道是否有辦法。
在連接條件中添加'e1.name <> e2.name'。 –