簡體   English   中英

獲取未記錄在聯接表中的行

[英]Get rows that are not logged in a joined table

表

我得到了上面顯示的這3張桌子。

我的目標是獲取user 1(jm)沒有反應的所有bits

目前,我有以下MySQL代碼:

select * from bit b LEFT JOIN bit_reaction br ON (br.bitId=b.id AND br.userId != 1)

這里的問題是因為br.userId不等於1,所以返回的是bit_reaction .id =2。正確的行為是它只會返回ID為2和3的位。

謝謝你的提示!

select b.*
from bit b
left join bit_reaction br ON br.bitId = b.id 
                         AND br.userId = 1
WHERE br.bitId is null

我假設您希望每個用戶都做出一點反應。 因此,更通用的答案將是...

SELECT *
FROM bit AS tBit
LEFT JOIN user AS tUser ON 1 = 1
LEFT JOIN bit_reaction AS tReaction ON tBit.id = tReaction.bitID
    AND tUser.id = tReaction.userID
WHERE tReaction.userID IS NULL

暫無
暫無

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

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