sql - 无需复制密钥即可加入

时间:2012-03-30 14:04:55

标签: sql postgresql

我想加入两个包含数百列的表,如下所示:

select * from a, b where a.key = b.key

问题是我得到一张有

的表格
Key | Key | Row1 | etc...

如果没有明确命名所有列(“select a.key, row1, ... from a, b where a.key = b.key”),有没有办法限制查询以便它只返回其中一个键?

3 个答案:

答案 0 :(得分:11)

select * from a INNER JOIN b USING (key)

USING语句会导致密钥仅在结果中显示一次。

答案 1 :(得分:4)

也许NATURAL JOIN是您的解决方案:

SELECT * FROM a NATURAL JOIN b;

但是如果有更多重复的键名,并且你想在结果中同时使用这两个键,那么自然连接对你不利。

答案 2 :(得分:0)

如果您专门为字段命名而不是*,则不会有重复的密钥,查询会更快(我听说过)。

select key, field1, field2, field3 from a, b where a.key = b.key