三表组合查询问题,1,产品表(PRDT),字段(产品编号,产品名称),进货单表头(PRDT_MF_INPUT)(进货单号,日期),进货单表身(PRDT_TF_INPUT)(进货单号,产品编号,进货单产品数量)
一张进货单的表身可能有多种产品。
按时间段把进货单所有产品记录查询出来,要求有,进货单号,日期,产品编号,产品名称,进货单产品数量
谢谢!
select a.*,b.*,c.* from PRDT_MF_INPUT a,PRDT_TF_INPUT b, PRDT c where a.PRDT_INPUT_NO=b.PRDT_INPUT_NO and b.PRDT_CODE=c.PRDT_CODE
查询不到所有记录。
解决方法
select a.*, b.*, c.*
from prdt as c right join (prdt_tf_input as b right join prdt_mf_input as a on b.prdt_input_no = a.prdt_input_no) on c.prdt_code = b.prdt_code;
原因
1、有的单据只有主单据,没有单据明细,用inner join 这部分主单据无法显示
2、有的产品在单据明细中有,但是可能产品表中,原来有,后来删掉了,用inner join 这部分产品的单据明细无法显示