Sql使用联接获取数据
这里有两个表交易和退款交易 我想使用join获取数据,应该获取重复数据 我正在使用这个查询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
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。