我有具有唯一记录的 DCHDR 表作为 DC_No 字段和 DCDTL,它是一个事务表,它具有不同产品和数量的重复 DC_Nos。
从下面的 MYSQL 行中,我可以加入,联合 2 个表,并且只有当 DCDTL 中的重复记录不相同时,结果才符合我的要求,
即,下面的示例记录在 DCDTL 中仅显示 1 条,第二条记录不显示。
示例:DCDTL 和数据中的字段 -
DC_Nos, Product_Desc, Nos, Qty
111 Oxygen 99.99, 4, 10
111 Oxygen 99.99, 4, 10
我知道 UNIQUE 会删除表中的重复项,但有没有其他方法可以显示 DCDTL 表的相同记录。请建议。
SELECT DC_No, DC_date, T.DC_Nos, T.Product_Desc, T.Nos, T.Qty
FROM DCHDR AS H
LEFT JOIN DCDTL AS T ON H.DC_No = T.DC_Nos
UNION
SELECT DC_No, DC_date, T.DC_Nos, T.Product_Desc, T.Nos, T.Qty
FROM DCHDR AS H
RIGHT JOIN DCDTL AS T ON H.DC_No = T.DC_Nos
以下是两个表格的样本数据和所需的结果:
DCHDR 表:
DC_date DC_Nos
2013-01-01 111
2013-01-02 112
2013-01-03 113
DCDTL 表:
DC_Nos, Product_Desc, Nos, Qty
111 Oxygen 99.99, 4, 10
111 Oxygen 99.99, 4, 10
111 Nitrogen, 9, 14
112 Nitrogen, 8, 29
113 Zero Air, 4, 15
所需结果:
DC_date DC_Nos Product_Desc, Nos, Qty
2013-01-01 111 Oxygen 99.99, 4, 10
2013-01-01 111 Oxygen 99.99, 4, 10
2013-01-01 111 Nitrogen, 9, 14
2013-01-02 112 Nitrogen, 8, 29
2013-01-03 113 Zero Air, 4, 15