SQL:连接具有大量列的表时删除重复的列

问题描述 投票:0回答:2

目标:我希望能够从2个表之间的JOIN的输出中删除公共/重复的列。

问题:我在此就此主题检查过的大多数其他问题,都在谈论在[[select]之后明确提及列名。例如:SQL Server : removing duplicate column while joining tables

我正在处理的表通常每个都有20多个列,因此最好不要手动分别写入每个列的名称。

因此,如果TableA有A列,而TableB有B列,并且它们之间有一个公共列,那么来自JOIN的非重复列的最终数目将是A + B-1,其中A,B> 20

现有查询:

-- Following query includes the duplicate column in the result SELECT * FROM TABLEA A INNER JOIN TABLEB B ON (A.ID = B.ID) WHERE <SOME_CONDITION>

我遇到的其他解决方案:

-- Following query omits the duplicate column in the result SELECT A.ID, A.A1, A.A2, A.A3, A.A4, A.A5, A.A6, A.A7, A.A8, A.A9, A.A10, B.A1, B.B2, B.B3, B.B4, B.B5, B.B6, B.B7, B.B8, B.B9, B.B10 FROM TABLEA A INNER JOIN TABLEB B ON (A.ID = B.ID) WHERE <SOME_CONDITION>

目标:我希望能够从2个表之间的JOIN输出中删除公共/重复列。问题:我在此就此主题检查过的其他大多数问题,请说...
mysql sql vertica
2个回答
0
投票
如果唯一重复的列是JOIN列,则可以使用USING修复此问题:

0
投票
如果您不想写下所有的列名,则需要使用动态SQL从表模式中选择不同的列名,然后执行查询字符串。
© www.soinside.com 2019 - 2024. All rights reserved.