[英]Join table and Case sql
我在SQL Select中遇到問題,例如,我們有兩個用戶X和Y,用戶X想看到用戶Y。因此,當看到他的關注時,用戶Y想知道用戶X中的哪些用戶(以下)關注他們。這張圖片:ID為:68的https://i.imgsafe.org/d2b2d83886.png用戶想要查看users.id = 50以下
SELECT users.id,users.username,
CASE WHEN follows.user_id = 68 THEN 1 END AS is_Follow
FROM users
LEFT JOIN follows
ON follows.follower_id = users.id
WHERE follows.app = 1 AND follows.user_id = 50
但這返回我NULL :(我該怎么辦?
LEFT JOIN
的right
表上的條件應該在ON
子句上,而不應該在WHERE
子句上:
SELECT users.id,users.username,
CASE WHEN follows.user_id = 68 THEN 1 ELSE -1 END AS is_Follow --Minus one value means NO.
FROM users
LEFT JOIN follows
ON follows.follower_id = users.id AND
follows.app = 1 AND
另一件事,您到底要檢查什么? 有多少人關注user_id=68
? 因為按列名聽起來並不像它。
編輯:試試這個:
SELECT users.id,users.username,
MAX(CASE WHEN follows.user_id = 68 THEN 1 ELSE -1 END) AS is_Follow --Minus one value means NO.
FROM users
LEFT JOIN follows
ON follows.follower_id = users.id AND
follows.app = 1 AND
GROUP BY users.id,users.username
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.