我的情况是我有两张桌子。我想将它们连接在一起并让重复的记录出现在同一行。下面给出的模拟表结构
MainTbl 列:MKey1、MKey2、MData1、MData2、MData3
SuppTbl 列:SPrimaryKey、SKey1、SKey2、SData1、SData2
我想 LEFT JOIN MainTbl 到 SuppTbl。但是,SuppTbl 包含重复的 SKey1 和 SKey2 组合键。
我想要的结果如下,其中“-#”表示重复数。
MKey1,MKey2,MData1,MData2,MData3,SData1-1,SData2-1,SData1-2,SData2-2
本质上,连接中的所有字段都应包含在基于 Key1 和 Key2 的一行上。
Sean W 尝试的答案
SELECT
MainTbl.MKey1,
MainTbl.MKey2,
tcd.SData1 AS SData11,
tcd.SData2 AS SData22,
tcr.SData1 AS SData12,
tcr.SData2 AS SData22
FROM MainTbl
LEFT JOIN SuppTbl tcd
ON MainTbl.MKey1=tcd.SKey1 AND MainTbl.MKey2=tcd.SKey2
LEFT JOIN SuppTbl tcr
ON MainTbl.MKey1=tcr.SKey1 AND MainTbl.MKey2=tcr.SKey2
WHERE tcd.SData1 < tcr.SData1
结果没有成功。没有拉任何记录。