![](/img/trans.png)
[英]LEFT JOIN (Join query not working properly while connecting two tables)
[英]Query not working on left join?
我有以下查詢,這給了我single
marstat結果。
SELECT
a_event . *,
members.*
FROM a_event
INNER JOIN members
ON (members.mem_id = a_event.a_uid)
LEFT JOIN `profiles`
ON (profiles.mem_id = members.mem_id
AND profiles.marstat = 'Single')
WHERE a_event.a_event_id = '5496'
AND members.gender = 'm'
AND a_event.a_fb_event_id = '0'
但是實際情況是a_event成員必須與成員表匹配(INNER JOIN是強制性的),然后此結果將與具有婚姻狀態為single的個人資料表的mem_id匹配。 但是主要問題是配置文件表可能包含帶有profiles.mem_id的結果或沒有條目,因此如果a_event.mem_id中的用戶不存在於profiles.mem_id中,那么該用戶也將被視為single
請幫忙謝謝
如果我正確理解了您的問題,則希望在以下情況下返回行:
a)用戶有個人資料並且是單身b)用戶沒有個人資料
在這種情況下,查詢應為:
SELECT
a_event . *,
members.*
FROM a_event
INNER JOIN members
ON (members.mem_id = a_event.a_uid)
LEFT JOIN `profiles`
ON (profiles.mem_id = members.mem_id)
WHERE a_event.a_event_id = '5496'
AND members.gender = 'm'
AND a_event.a_fb_event_id = '0'
AND (profiles.marstat = 'Single' OR profiles.marstat IS NULL)
沒有小提琴就很難測試,但是嘗試一下:用小提琴更新答案
SELECT
a_event . *,
members.*
FROM a_event
INNER JOIN members
ON (members.mem_id = a_event.a_uid)
LEFT JOIN `profiles`
ON (profiles.mem_id = members.mem_id)
WHERE a_event.a_event_id = '5496'
AND members.gender = 'm'
AND a_event.a_fb_event_id = '0'
AND (profiles.marstat = 'Single' or is null)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.