sql - присоединиться без дублирования ключа - PullRequest
6 голосов
/ 30 марта 2012

Я хочу объединить две таблицы с несколькими сотнями столбцов, например:

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 ]

11 голосов
/ 30 марта 2012
select * from a INNER JOIN b USING (key)

Оператор USING приводит к тому, что ключ появляется только один раз в вашем результате.

4 голосов
/ 30 марта 2012

Возможно, NATURAL JOIN - это решение для вас:

SELECT * FROM a NATURAL JOIN b;

Но если есть больше дублированных имен ключей, и вы хотите использовать оба таких ключа в результатах, тогда естественное объединение вам не подходит.

0 голосов
/ 30 марта 2012

Если вы конкретно назовете свои поля вместо *, у вас не будет дубликатов ключей, и запрос будет быстрее (как я слышал).

select key, field1, field2, field3 from a, b where a.key = b.key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...