這可能是簡單的,但我不能看到問題...MySQL的左外連接沒有給正確的結果
我有一個包含標題的郵件列表的索引MySQL表。 該表是列表。 然後有一個用戶表和一個訂閱表。 訂閱表包含將用戶鏈接到其郵件列表的簡單條目。
關注的欄目有:
USERS u_id
LISTS l_id
SUBS s_id, u_id, l_id
因此,當用戶23加入郵件列表7,在SUBS創建的條目是:
s_id: 1 --
u_id: 23 --
l_id: 7
這裏的問題: 當用戶正在尋找在他們的訂閱中,我需要顯示一張顯示所有郵件列表的表格,每個郵件列表都有一個勾選的複選框,如果他們已經訂閱了該列表。
我的SQL,這是不對的,但我不知道怎麼了,就在這裏:
SELECT l.l_id, l.l_name, l.l_desc,
CASE
WHEN s.u_id = '23' THEN 1 ELSE 0
END
FROM lists as l
LEFT OUTER JOIN
subs as s
ON s.l_id = l.l_id
GROUP BY l.l_id ASC
這應該是呈現1S打勾相關盒和0給他們留下空。
但是這種行爲很奇怪,因爲當我從subs中得到*時,我看到了所有的期望值。 但是,上述SQL返回存在訂閱的幾個空白複選框。甚至更奇怪的是,如果所有框都打勾,那麼SQL根本沒有返回。
我一直在爭取這件事太久了。有誰能提供解決方案嗎?
非常感謝!
我知道這已經過時了,但我只是想謝謝你這個答案。 – Kane