[英]LEFT OUTER JOIN query not returning expected rows
我的目標是使用第四個維恩圖來完成LEFT OUTER JOIN打算做的事情: SQL Diagrams :
我的查詢根本沒有返回任何值,實際上,它應該返回Consultant_Memberships中的所有值減去Consultant_Memberships_Lists中存儲的值。
請參閱SQL Fiddle以便更容易理解:
SELECT *
FROM consultant_memberships
LEFT OUTER JOIN consultant_memberships_list
ON consultant_memberships.`id` =
consultant_memberships_list.membership_id
WHERE consultant_memberships_list.consultant_id = $id
AND consultant_memberships_list.membership_id IS NULL
查詢使用'5'作為ID用於演示目的,以嘗試挑選正確的行。
由於WHERE
子句上的consultant_id = 5
,您當前的查詢基本上是在進行INNER JOIN
。 我相信你真的想用:
SELECT *
FROM consultant_memberships m
LEFT OUTER JOIN consultant_memberships_list l
ON m.`id` = l.membership_id
AND l.consultant_id = 5
WHERE l.membership_id IS NULL;
使用
SELECT *
FROM consultant_memberships
LEFT Outer JOIN consultant_memberships_list
ON consultant_memberships_list.membership_id = consultant_memberships.`id`
and consultant_memberships_list.consultant_id = 5
where consultant_memberships_list.membership_id IS NULL;
在查詢“consultant_memberships_list.consultant_id = 5”之前使用的Where子句忽略了左外連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.