簡體   English   中英

連接表和Case sql

[英]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 JOINright表上的條件應該在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.

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