如何使用INNER JOIN从MySQL发票及明细表中提取对应商品明细项
你之前的关联查询没有得到预期结果,核心问题是多余的GROUP BY department_name子句:该子句会将同部门的多条数据合并为单条返回,自然无法拿到所有商品明细。
如果要获取指定部门、指定时间段内所有发票对应的商品明细,正确的INNER JOIN写法如下:
SELECT -- 建议按需指定字段,避免两张表同名字段冲突,这里先写全量返回示例 i.*, d.* FROM tbl_invoice i INNER JOIN tbl_invoice_details d ON i.invoice_id = d.invoice_id WHERE i.department_name = 'DIFA' AND i.order_date BETWEEN '2021-08-01' AND '2021-10-13';
这里用表别名i、d简化了书写,你也可以根据需要替换成完整表名。
如果是要查询单张发票ID为4的所有明细,写法如下:
SELECT * FROM tbl_invoice INNER JOIN tbl_invoice_details ON tbl_invoice.invoice_id = tbl_invoice_details.invoice_id WHERE tbl_invoice.invoice_id = '4';
内容的提问来源于stack exchange,提问作者Silvestre Kassoka
相关产品推荐
相关产品推荐

