gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:25:58 25 4
gpt4 key购买 nike

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

问题:我在这里检查过的关于这个主题的大多数其他问题,都讨论在select之后明确提及列名称

例如:SQL Server : removing duplicate column while joining tables

我正在处理的表通常每个都有 20 多个列,单独手动编写每个列名称并不是最佳选择。

因此,如果 TableA 有 A 列,TableB 有 B 列,它们之间有一个公共(public)列,那么 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>

最佳答案

如果唯一重复的列是 JOIN 列,您可以使用 USING 修复此问题:

SELECT *
FROM TABLEA A INNER JOIN
TABLEB B
USING (id)
WHERE <SOME_CONDITION>;

关于mysql - SQL:连接具有大量列的表时删除重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com