簡體   English   中英

LEFT OUTER JOIN查詢不返回預期的行

[英]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;

請參閱SQL Fiddle with Demo

使用

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM