请求协助实现同表SELECT JOIN:基于指定字段关联查询
同表自连接查询解决方案
要实现发票与对应退货记录关联的查询,用**自连接(SELF JOIN)**就能搞定,具体SQL语句如下(记得把your_table替换成你的实际表名):
SELECT inv.TRX_NUMBER AS 发票编号, ret.TRX_NUMBER AS 退货编号, inv.CUSTOMER_TRX_ID AS 发票ID, ret.CUSTOMER_TRX_ID AS 退货ID, inv.PREVIOUS_CUSTOMER_TRX_ID AS 关联发票ID FROM your_table inv LEFT JOIN your_table ret ON inv.CUSTOMER_TRX_ID = ret.PREVIOUS_CUSTOMER_TRX_ID WHERE ret.CUSTOMER_TRX_ID IS NOT NULL;
关键说明:
- 给表分别起别名
inv(对应原始发票记录)和ret(对应退货记录),方便区分 - 关联条件
inv.CUSTOMER_TRX_ID = ret.PREVIOUS_CUSTOMER_TRX_ID,让退货记录的关联ID匹配到对应的原始发票ID - 如果只需要显示有对应退货的发票记录,用
INNER JOIN或者加上WHERE ret.CUSTOMER_TRX_ID IS NOT NULL都可以;要是想保留所有发票(包括无退货的),去掉WHERE条件即可 - 你可以根据期望的结果集,调整
SELECT后面的字段列表,按需增减
内容的提问来源于stack exchange,提问作者JenJenFenFen
相关产品推荐
相关产品推荐

