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