如果有三個表,表項,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匹配的最大列數輸出只是一個記錄。 由於TableAbcd的1行有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)
如果提取我兩條記錄,我知道可能存在設計問題,但我們從第三方遺留系統獲取數據,該系統根據其需要具有表結構,並將其發送到另一個接口。
請建議。
那你試試這麼遠嗎? – Renzo
你在用什麼數據庫? –
你的「條件連接」在哪裏? MySQL或MSSQL? –