[英]Inner Join returned values
我有一個查詢,例如,
select name
from employee
inner join task on employee.id = task.employee_id
order by name asc
表格如下所示:
員工
id name
1 Emily
2 Sam
3 AI
4 Joe
5 Daniel
6 John
任務
task_id employee_id
A123 1
D456 3
A122 1
我相信上面的原始查詢會導致:
Al
Emily
但實際上是:
Al
Emily
Emily
我認為它只會返回一次 Emily,因為內部聯接在兩個表中都返回了兩個值,但是 Emily 不是只在員工表中出現一次嗎? 我不明白為什么它會返回 Emily 兩次,即使它在任務表中列出了兩次?
謝謝
Emily 有兩個任務,因此她的姓名記錄在連接中重復,每次匹配一次。 我可能會使用存在邏輯在這里得到你想要的結果:
SELECT e.name
FROM employee e
WHERE EXISTS (SELECT 1 FROM task t WHERE t.employee_id = e.id);
用簡單的英語閱讀,上面的查詢表示返回任何員工姓名(一次),我們可以在task
表中找到至少一項任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.