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

标签 mysql sql vertica

目标:我希望能够从两个表之间 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/

相关文章:

php - 通过 pdo 连接到 vertica 数据库时出错

jquery - HTML 复选框元素未将值传递到 jQuery 和 AJAX 字符串中

来自另一个选择的 MySQL 更新

从服务器检索多行时出现php错误

sql - 在 SQL Server 中提取具有不一致属性和元素的嵌套 XML 数据

php - 返回 MySQL 中特定日期的行

mysql - SQL 派生列

sql - 以编程方式获取数据库 w.r.t 关系中的所有表

bash - vsql 错误处理(没有那个文件或目录)

postgresql - 如何将 SQL 连接重写为窗口函数?