我尝试连接两个表(view_sales_report和com_payments)并显示来自view_sales_report的所有记录。查询如下,但问题是它只显示com_payments条目的记录。我想我需要改变where条件。
SELECT
view_sales_report.tender_id,
view_sales_report.customer_code,
view_sales_report.marketing_exe,
com_payments.main_section,
com_payments.amt_curr,
com_payments.amount,
com_payments.date_of_pay,
com_payments.cat_paid,
view_sales_report.category,
view_sales_report.po_received_date
FROM view_sales_report
JOIN com_payments ON com_payments.tender_id = view_sales_report.tender_id AND com_payments.main_section ='Incentives'
WHERE com_payments.cat_paid = 'Marketing'
ORDER BY view_sales_report.file_no DESC
任何人都可以帮我这个吗?
表view_sales_report
tender_id | customer_code |
1 | 0 |
2 | 0 |
3 | 0 |
4 | 0 |
5 | 1 |
6 | 0 |
表格Com_Payments
tender_id | main_section | cat_paid
1 | | marketing
期望输出
tender_id | customer_code | cat_paid
1 | 0 | Marketing
2 | 0 |
3 | 0 |
4 | 0 |
5 | 1 |
6 | 0 |
输出iam
tender_id | customer_code | cat_paid
1 | 0 | Marketing
答案 0 :(得分:0)
使用左连接并添加on
子句
SELECT
view_sales_report.tender_id,
view_sales_report.customer_code,
view_sales_report.marketing_exe,
com_payments.main_section,
com_payments.amt_curr,
com_payments.amount,
com_payments.date_of_pay,
com_payments.cat_paid,
view_sales_report.category,
view_sales_report.po_received_date
FROM view_sales_report
LEFT JOIN com_payments ON com_payments.tender_id = view_sales_report.tender_id AND com_payments.main_section ='Incentives'
AND com_payments.cat_paid = 'Marketing'
ORDER BY view_sales_report.file_no DESC