我有3個表。Mysql選擇列爲空如果不加入
- 第一個是引用聯繫人的用戶表。
- 其次是聯繫人行表,其中包含電子郵件地址和對聯繫人的引用。
- 第三張表保存信息,如何使用聯繫人行並引用聯繫人行。
在這種情況下,我試圖從用戶表中獲取記錄並將emailaddress設置爲它,如果它存在並且設置了正確的使用類型。如果聯繫人行爲空或未設置使用類型,則仍應返回結果,在這種情況下,電子郵件地址應爲空。
表1
- ID
- f_contact
表2
- ID
- 值
- F_TYPE
- f_contact
表3
- ID
- table2_id
- F_TYPE
每當有完整的柴n在所有這些表中的記錄中起作用,但是當表2沒有任何記錄或表3沒有對Table2的正確引用時,它不返回任何內容。
- 表1總是排
- 表2可以有一個或多個行
- 表3可以有1參照表2排
我現在是這樣的:
SELECT
Table1.*,
Table2.value AS emailaddress
FROM
Table1
LEFT JOIN Table2
ON Table2.f_contact = Table1.f_contact
LEFT JOIN Table3
ON Table3.table2_id = Table2.id
WHERE Table1.f_contact = 1113
AND Table2.f_type = 2
AND Table3.f_type = 3
這幾乎是它的釘子。它返回一行與emailaddress的值和null,具體情況。但是當表3中沒有引用記錄時,emailaddress應該爲空總是在這種情況下 – makallio85
期望的輸出是:id => int,f_contact => int,emailaddress => null或字符串 – makallio85
查看更新的答案。 – peterm