У меня 3 стола. Они соединены внутри. Когда я выбираю выбор из всех трех таблиц, я получаю декартово произведение.
Я использовал отдельные и пробовал перекрестное применение с верхним 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