【发布时间】:2019-08-25 05:16:51
【问题描述】:
我有 3 个相互连接的表:
- TableA(ID、名称、金额)(1 行)
- TableB(ID、标题)(3 行)
- TableC(ID、名称、标题)(3 行)
查询:
Select *
from TableA a Left Join
TableB b
on a.ID = b.ID Left Join
TableC c
on a.ID = c.ID and a.name = c.name
这会产生很多重复,因为第二个左连接正在加入第一个的结果。
例如第一个左连接为您留下 3 行 (1x3),然后第二个连接到此结果以获得 9 (3x3)。
如何生成一个结果,在每一行中清楚地列出 ID、名称、标题、金额? 例如:
TableA.ID, TableA.Name ,TableB.Title1, TableA.Amount
TableA.ID, TableA.Name ,TableB.Title2, TableA.Amount
TableA.ID, TableA.Name ,TableB.Title3, TableA.Amount
TableA.ID, TableA.Name ,TableC.Title1, TableA.Amount
TableA.ID, TableA.Name ,TableC.Title2, TableA.Amount
TableA.ID, TableA.Name ,TableC.Title3, TableA.Amount
我最初尝试将这些表连接到单独的表中,然后将它们联合在一起,这可行,但我认为必须有更简单的方法
【问题讨论】:
标签: sql