在PostgreSQL中,如何在不显式列出所有字段的情况下选择两个表中的所有内容?

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

由于A表和B表的字段较多,在连接两个表进行查询时,如果显式列出所有字段,工作量会很大,代码也会很长。如何在不明确列出所有字段的情况下选择所有列?

例如我有两个表A和B,它们有一个公共字段id。通常情况下,如果我想选择A表和B表中的所有字段,SQL代码是这样写的:

select a., b.x1, b.x2, b.x3...... from a left join b using (id)
。如果A表和B表都有上百个字段,代码会很长。如何使用类似
select a., b.* from a left join b using (id)
的查询选择表A和B中的所有字段并合并相同的字段?

sql postgresql
1个回答
0
投票

JOIN...USING()
语法合并为连接命名的列。

除此之外,SQL 中没有通配符语法来合并相同的列。如果列具有相同的名称,SQL 不会假定它们是相同的。

例如,您可以在两个表中都有一个列

created_at
,但它们具有不同的值。仅仅因为它们具有相同的名称并不意味着它们具有相同的内容。

您只需列出所需的列即可。

看起来真正的问题是表有数百列。这是一种代码味道——通常它表明设计不好。

© www.soinside.com 2019 - 2024. All rights reserved.