У меня две таблицы. Я хочу объединить их вместе, и в одной строке появятся повторяющиеся записи. Ложные структуры таблиц приведены нижеSQL Выберите несколько строк в одну отображаемую строку
MainTbl Cols: MKey1, MKey2, MData1, MData2, MData3
SuppTbl Cols: 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.
ПОПЫТКИ ОТВЕТ НА ШОН 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
РЕЗУЛЬТАТ успеха. Не делал никаких записей.
В таблице 2 не более двух совпадений? – Tony
@tony Не обязательно. У него может быть один или два. Если у него больше, это редкий случай, но возможно. У меня есть условия, которые могут ограничить его двумя. «WHERE DataD1 = 4» и «WHERE DataD1 = 22» – steventnorris
Какой вкус SQL вы используете? – Tony