0
也許標題不是最好的,但我不知道如何用幾句話來解釋它。mysql左連接沒有重複行
我有兩個表是這樣的:
表 「用戶」
id|name
--+--------+
1 |Alice |
2 |Bob |
3 |Charlie |
表 「article_users」
user_id|article_id|expired_date
-------+----------+------------+
1 | 1 |01-01-2016
1 | 5 |01-01-2018
3 | 1 |01-01-2016
我需要獲得所有用戶,並知道他們是否有一個文章關係,獲取它是否過期以防他們有這種關係。
我不需要知道哪篇文章已過期。我的意思是,如果一個用戶的關係沒有過期(至少)一篇文章,答案應該是:「是的,他/她有一個積極的關係」。
我工作的查詢是:
SELECT u.*, IF(TIMEDIFF(expired_date,CURDATE())<0,'YES',IF(TIMEDIFF(expired_date,CURDATE())>0,'EXPIRED','NO')) relation
FROM users u
LEFT JOIN article_users au ON au.user_id = u.id
我的問題是,我得到「複製」因爲左行JOIN,我只是想知道,如果用戶擁有一個積極的關係。我的意思是,不管用戶是否有一個或多個活躍的關係。如果他/她至少有一個(主動關係),那麼結果應該是「是」。如果他沒有積極的關係(但他/她有關係),結果應該是「過期」,最後如果他/她沒有關係,結果應該是「不」。
所以,理想的結果應該是:
id|name |relation
--+--------+--------
1|Alice | YES
2|Bob | NO
3|Charlie | EXPIRED
我試圖用GROUP_CONCAT函數來得到它,但我unabled得到它。我不知道這是否正確。
任何幫助將非常感激。
在此先感謝。
是的,這就是我正在尋找的查詢。簡單完美。非常感謝! – cooper