Sql使用联接获取数据

Sql使用联接获取数据,sql,asp.net,sql-server,left-join,Sql,Asp.net,Sql Server,Left Join,这里有两个表交易和退款交易 我想使用join获取数据,应该获取重复数据 我正在使用这个查询 select tr.transactionid, tr.customerid, tr.custname, rt.Amount, rt.Refund_Amount, rt.transactionid, rt.referenceid from Transaction tr left join RefundTransaction rt on rt.referenceid = tr.trans

这里有两个表交易退款交易

我想使用join获取数据,应该获取重复数据

我正在使用这个查询

select tr.transactionid, tr.customerid, tr.custname,
       rt.Amount, rt.Refund_Amount, rt.transactionid,   rt.referenceid
from Transaction tr 
left join RefundTransaction rt on rt.referenceid = tr.transactionid
它没有提供适当的数据。它不是从退款数据中选择重复数据

请帮忙
这里我插入了一张图片,您可以从中获得实际场景。

根据图片,您需要将
事务
表放在
左连接中。然后,只有您才能从
returnTransaction
表中获取所有条目

SELECT rt.transactionid
    ,tr.customerid
    ,tr.custname
    ,tr.Amount AS Refund_Amount
    ,rt.transactionid
    ,rt.referenceid
    ,rt.Amount 
FROM RefundTransaction rt
LEFT JOIN [TRANSACTION] tr ON rt.referenceid = tr.transactionid

如果要选择所有数据,必须进行完全外部联接

select tr.transactionid,  tr.customerid,  tr.custname,    rt.Amount, rt.Refund_Amount,   rt.transactionid,   rt.referenceid from Transaction tr full outer join RefundTransaction rt on rt.referenceid = tr.transactionid

您可以找到有关联接的更多信息

您正在执行的联接完全相反

这应该行得通

select tr.transactionid, tr.customerid, tr.custname,
       rt.Amount, rt.Refund_Amount, rt.transactionid,   rt.referenceid
from RefundTransaction tr left join
     Transaction rt
     on rt.referenceid = tr.transactionid

根据您的图像,这可以简单地通过使用两者之间的内部连接来解决

SELECT t.transactionid, t.customerid, t.custname,
       rt.Amount, rt.Refund_Amount, rt.transactionid,   rt.referenceid
FROM TRANSACTION t
innerjoin [RefundTransaction ] rt ON rt.referenceid = t.transactionid

我认为对于提供的数据,您的查询会很好。它将为匹配的transactionID选择重复的退款交易。唯一的更改是在select query TOURE中,第一列应替换为rt.transactionid。