我有 3 张桌子。它们是内部连接的。当我选择从所有三个表中进行选择时,我得到一个笛卡尔积。
我使用了 distinct 并且我尝试过与前 1 名交叉应用。前 1 名带回了适量的记录,但它重复了该选择前 N 项中使用的字段。
基本问题。您可以从 3 个不同的表中进行选择并避免笛卡尔结果吗?我可以将所有三个表都连接起来,并且可以在没有笛卡尔坐标的情况下从两个表中获取记录。当我选择从第三个中选择时,笛卡尔就会出现。
如果这是可能的,我应该尝试哪些其他 tsql 命令/构造? http://imageshack.us/f/255/50353790.png/
SELECT CRT.[TransactionID]
,CRT.[creditrewardsID]
,CRT.[OwnerID]
, CRT.[TransactionDate]
,CRT.[ItemID]
,CRT.[VALUE]
,CRM.First
,CRM.MI
,CRM.Last
,CTI.fn
,CTI.ln
FROM [ownership].[dbo].[creditrewardsTransactions] CRT
Join [ownership].[dbo].[creditrewardsMembers] CRM
on CRT.creditrewardsid = CRM.[creditrewardsID]
Join [Exchange].[dbo].[CreditTourInfo] CTI
on CRM.CRMemberNum = CTI.PRIMECRPNum
--where CRT.creditrewardsID = 11111