MySQL select 使用2个条件查询

MySQL select query using 2 conditions

仅当 dc_detail table 中存在 dcno 时,我的以下查询才会显示结果 但我真正需要的是即使 dc_detail table 中不存在 dcno,它也应该将 dcno 定义为 0 和 select 结果 提前致谢

SELECT p.po_no as id, DATE_FORMAT(p.po_date, '%d-%m-%Y')as po_date, p.customer, p.cust_po as po_no,p.tot_ord_qty,
DATE_FORMAT(p.delivery_date, '%d-%m-%Y')as delivery_date,p.dc_status,p.inv_status,p.tot_dc_qty,p.tot_inv_qty,
GROUP_CONCAT(distinct d.dc_no SEPARATOR ', ') as dc FROM po_header p, dc_details d  
where p.cust_po=d.cust_po  
group by p.cust_po;

您应该使用左联接来包含没有详细信息的 headers。对于不存在的详细信息字段,这将为您提供带有空值的行。 要获取值 0 而不是 null,您可以使用 coalesce 函数。 查询的相关部分是

SELECT COALESCE(d.dc_no, 0),...
FROM po_header p LEFT JOIN dc_detail d ON p.cust_po=d.cust_po

合并函数 returns 第一个非空参数。