我想加入两个包含数百列的表,如下所示:
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
”),有没有办法限制查询以便它只返回其中一个键?
答案 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