加入两个表并显示所有记录

时间:2016-08-22 05:44:48

标签: mysql

我尝试连接两个表(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

1 个答案:

答案 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
相关问题