Если есть три таблицы, TableItem, TableAbcd и TablePqrs, как показано нижеКак найти строку с максимальными совпадающими столбцами?
TableItem
ID item
1 item1
TableAbcd
ID Item ColA ColB ColC ColD
1 item1 A1 B1 C1 D1
TablePqrs
ID item ColA ColB ColC ColD ColValue
1 item1 A1 B1 null null 10000
2 item1 A1 B1 C1 D1 100
Здесь для данного пункта, Там должна быть только одна запись в выходных данных, который имеет максимальные столбцы, соответствующие в TableAbcd и TablePqrs , Поскольку строка 1 из TableAbcd имеет максимальные столбцы совпадающие с TablePqrs строки 2.
Мой выход для присоединиться к выше три таблицы должны быть,
item ColA ColB ColC ColD ColValue
item1 A1 B1 C1 D1 100
Кодекс пытался до сих пор,
Select item, ColA, ColB, ColC, ColD, ColValue
FROM TableItem a
LEFT OUTER JOIN TableAbcd b
ON a.item = b.item
LEFT OUTER JOIN TablePqrs c
ON (b.ColA = c.ColA AND b.ColB = c.ColB AND b.ColC = c.ColC AND b.ColD = c.ColD)
OR (b.ColA = c.ColA AND b.ColB = c.ColB AND b.ColC = c.ColC)
OR (b.ColA = c.ColA AND b.ColB = c.ColB)
если fetch мне две записи, я знаю, что могут возникнуть проблемы с дизайном, но мы получаем данные от сторонней системы устаревания, которая имеет структуру таблицы в соответствии с ее потребностями и отправляет ее другому интерфейсу.
Просьба предложить.
Что вы пытались до сих пор? – Renzo
Какая БД вы используете? –
Где твое "условное соединение"? MySQL или MSSQL? –