三表联合查询不到所有记录

三表组合查询问题,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 这部分产品的单据明细无法显示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章