0
我有這個表的結構:找到未在其他表中存在的記錄
-request REQUEST_ID user_id說明
-user user_id說明 COMPANY_ID
-company COMPANY_ID
我想從請求表中選擇所有這些記錄user_id =?並且沒有這樣的用戶的公司ID相同的記錄。
我有這個表的結構:找到未在其他表中存在的記錄
-request REQUEST_ID user_id說明
-user user_id說明 COMPANY_ID
-company COMPANY_ID
我想從請求表中選擇所有這些記錄user_id =?並且沒有這樣的用戶的公司ID相同的記錄。
這通常是使用LEFT JOIN實現:
SELECT r.*
FROM request r
JOIN user u ON r.user_id = u.user_id
LEFT JOIN u1 ON u1.user_id != u.user_id AND u1.company_id = u.company_id
LEFT JOIN request r1 ON r1.user_id = u1.user_id
WHERE r1.user_id IS NULL
通過「其中」我們說,我們不希望
SELECT * FROM「與同一家公司,誰擁有至少1請求用戶」請求WHERE user_id NOT IN(SELECT user_id FROM user WHERE user_id = 123) – Desire
'如果user_id = 123和其他user_id = 456兩個用戶company_id = 999,所以我只需要那些來自user_id = 456的user_id = 123的請求請求表中沒有條目。「請謹慎解釋這意味着什麼? –
http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/ –