[英]why I am not getting all records from left table with LEFT JOIN mysql
我正在運行兩個 Mysql 查詢第二個沒有從左表中獲取所有記錄。
表一 -> audit_form_tbl
field id company_form_id field_name
1...................42..................A
2................. 42...................b
3................. 42...................t
4................. 42...................bgf
5................. 42...................bfddf
表二 -> audit_form_value_4_tbl
id field id company_form_id field_name
1.................1................. 42................45
2.................3................. 42................50
3.................2................. 42................70
SELECT aft.field_id,
aft.sort_order,
aft.type,
aft.parent_id,
aft.type,
aft.field_name
FROM audit_form_tbl aft
WHERE aft.type='FH'
AND aft.company_id = '4'
AND aft.company_form_id = '42'
AND aft.parent_id = '0'
AND aft.status = 1
ORDER BY sort_order
SELECT aft.field_id,
aft.sort_order,
aft.type,
aft.parent_id,
aft.type,
aft.field_name
avt.field_value,
FROM audit_form_tbl aft
LEFT JOIN audit_form_value_4_tbl avt ON aft.field_id=avt.field_id
WHERE aft.type='FH'
AND aft.company_id = '4'
AND aft.company_form_id = '42'
AND aft.parent_id = '0'
AND aft.status = 1
AND avt.form_id='4421579691865'
ORDER BY sort_order
我想要表一中的所有記錄和表二中的匹配記錄。
謝謝
SELECT aft.field_id,
aft.sort_order,
aft.type,
aft.parent_id,
aft.type,
aft.field_name
avt.field_value,
FROM audit_form_tbl aft
LEFT JOIN audit_form_value_4_tbl avt ON aft.field_id=avt.field_id
-- insert the condition by right table to ON
AND avt.form_id='4421579691865'
WHERE aft.type='FH'
AND aft.company_id = '4'
AND aft.company_form_id = '42'
AND aft.parent_id = '0'
AND aft.status = 1
-- remove the condition by right table from WHERE
-- AND avt.form_id='4421579691865'
ORDER BY sort_order
您的WHERE
子句中有avt.form_id = '4421579691865'
。 當沒有匹配的行加入時, avt.form_id
為NULL
並且avt.form_id = '4421579691865'
不是真的,因此該行被過濾掉。 將其移至ON
子句。
...
LEFT JOIN audit_form_value_4_tbl avt
ON aft.field_id = avt.field_id
AND avt.form_id = '4421579691865'
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.