我有三個表(更多的cols但上市的重要的):聯接查詢返回空以及
users
user_id - name
1 DAN
2 TED
3 SAM
list_shares
list_shares_id - user_id - list_id
1 1 123
2 3 123
3 2 456
list_contribute
list_contr_id - list_id - can_contribute
1 123 3
我想告訴誰在LIST_ID下表list_shares的所有用戶,攜手與用戶表獲取用戶信息,也算有多少人也都在貢獻表
基本上 - 用戶可以與用戶共享列表,並且還邀請了一些用戶的貢獻,但並非所有的共享被允許貢獻,因此單獨的list_contribute表。
這裏是我使用的是什麼,首先這只是顯示了一定的ID的所有用戶:
select u.name, u.live_prof_pic, u.url, u.user_id from list_shares ls
join users u on ls.user_id = u.user_id
where ls.list_id = '123'
這帶來了兩個結果,這是正確的 - 下一個查詢正在試圖尋找這兩個都是在list_contribute表還 - 但是,它減少了結果一個,而我希望它爲HOW_MANY如果不是在list_contribute
select u.name, u.live_prof_pic, u.url, count(ls.list_shares_id) as how_many, u.user_id from list_shares ls
join users u on ls.user_id = u.user_id
left join list_contribute lc on ls.list_id = lc.list_id
where ls.list_id = '123'
在上面的數據同時返回並顯示0我想回到
user_id name how_many
3 SAM 1
1 DAN 0
你確保最後一次查詢的連接語句在第三行是正確的:on ls.event_id = lc.event_id – Farfarak
@ 010001100110 000101110010011010對不起 - 更新問題 - 我很快在鍵入它的同時考慮下一個查詢! –
您的代碼示例在連接條件中不使用can_contribute列。這符合您的要求。 –