簡體   English   中英

mysql對接查詢

[英]mysql opposite query of a join

我有2張桌子。 第二個表2 PK從第一個表中引用為2FK,這也是2 PK。 我想拉出不匹配的記錄?

以下查詢匹配基於這兩個鍵匹配的記錄。 這將返回3828行。 我該怎么做相反>

SELECT * 
FROM hdb.addressesconsultants a
join orderconsultants o where a.CONSULTANT = o.CONSULTANT and a.ORDERNO = o.ORDERNO

下面返回3837行。

SELECT *  FROM hdb.addressesconsultants a

@ munguea05

這個做了什么,我在后,它返回9行這是矛盾,但是我已經在4044行orderconsultants我如何解決或搶不匹配的行addressconsultantsorderconsutlants

如何刪除這些行?

SELECT o.*
FROM hdb.orderconsultants o
LEFT OUTER JOIN addressesconsultants a 
ON a.CONSULTANT = o.CONSULTANT AND a.OrderNo = o.OrderNo
WHERE a.CONSULTANT is NULL and a.OrderNo is NULL

您要那些沒有訂單的人嗎? 使用左聯接,只考慮在左聯接表上具有NULL的那些聯接

SELECT * 
FROM hdb.addressesconsultants a
LEFT JOIN orderconsultants o 
ON a.CONSULTANT = o.CONSULTANT and a.ORDERNO = o.ORDERNO
WHERE
    o.CONSULTANT IS NULL

這取決於您只希望來自一個不匹配表的結果,還是來自兩個表不匹配的結果。

如果您需要兩者的結果,這將給您一個相反的結果。

SELECT *
FROM hdb.addressesconsultants a (NOLOCK)
LEFT OUTER JOIN orderconsultants o (NOLOCK)
ON A.consultant = o.Consultant AND a.OrderNo = o.OrderNo
WHERE o.Consultant is NULL and O.OrderNo is NULL
SELECT a.* 
FROM hdb.addressesconsultants a
left join orderconsultants o where a.CONSULTANT = o.CONSULTANT and a.ORDERNO = o.ORDERNO
where o.CONSULTANT is null

這將顯示在addressconsultant中有條目的任何條目,但在orderconsultants中沒有相應的條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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