我正在使用SQL Server 2008并试图从4个不同的表中加入数据,其中表是相关的,这样第二个表就是第一个和第三个孩子&第四个表是第二个的两个孩子,我正在使用以下语句输出结果,而不是获取9个不同的记录(5个来自CR表,4个来自CX表)我得到20个记录,其中来自第3个第3个表的数据被复制。SQL INNER JOIN在输出上复制数据?
如果我省略对表CX的引用,我会得到所需的5个结果,省略对CR的引用会给出所需的4个结果,但是我需要结合这两个表的9个结果,而不是我得到的20个记录。我会张贴截图,但由于声誉抱歉无法。
SELECT
LS.SITECODE,
ep.EP_KEY,
C0.LEASEID,
C0.SDATE AS LeaseStart,
C0.EDATE AS LeaseExpiry,
CR.EFFDATE AS RenewalDate,
CX.SDATE AS ReviewDate
FROM LS
INNER JOIN FMEP AS ep ON LS.SITECODE = ep.SITECODE
INNER JOIN C0 ON ep.EP_KEY = C0.EP_KEY
INNER JOIN CR ON C0.LEASEID = CR.LEASEID
INNER JOIN CX ON C0.LEASEID = CX.LEASEID
WHERE ls.SITECODE = 2121
找遍周围的但是我明明没有使用正确的搜索字词的解决方案的最后几个小时,由于我缺乏与SQL熟悉的。我是SQL新手,如果我很难理解您的回复,请提前感谢您抽出宝贵时间阅读本文,请耐心等待。
例如数据,预期输出.... – 2013-05-06 07:00:46
您可以使用[ SQL小提琴](http://sqlfiddle.com/#!3)添加一些数据示例和表模式。 – Yaroslav 2013-05-06 07:05:50
鉴于CR有5个leaseid值,CX有4个leaseid值,根据您对省略连接的描述;并且它们是内连接的,我不明白为什么你期望结果中有9行? – 2013-05-06 07:12:36