如果有三个表,表项,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? –