[英]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
我如何解決或搶不匹配的行addressconsultants
從orderconsutlants
?
如何刪除這些行?
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.