Есть ли естественная замена соединения в SQL Server 2005? - PullRequest
0 голосов
/ 24 мая 2010

У меня есть две таблицы, к которым я хотел бы присоединиться по полю ID.Я пытался использовать для этого "INNER JOIN".Все было бы хорошо, но есть две проблемы:

  1. В результате я получаю дважды идентификатор столбца.
  2. Я должен опустить указание столбцов, которые должны отображаться в операторе выбора.Я хотел бы использовать там *.

Я отмечаю, что другие sql-ы имеют что-то вроде естественного соединения, и это, вероятно, (или нет?) Ответ на мой вопрос.К сожалению, такого соединения нет в SQL Server (2005).Кто-нибудь знает какую-нибудь хорошую замену?

Ответы [ 2 ]

5 голосов
/ 24 мая 2010

SQL Server не имеет естественного объединения, просто перечислите все нужные столбцы. (вы можете перетащить папку столбцов таблицы в SSMS в окно кода, и все столбцы таблицы будут перечислены, а затем просто удалите ненужные)

2 голосов
/ 24 мая 2010

Я думаю, что вы хотите

SELECT * FROM x INNER JOIN y ON x.id = y.id

Но вы хотите пропустить y.id (потому что он дублирует x.id).

Если это правильно: нет, это невозможно сделать ни на одном из известных мне диалектов SQL. Вы должны будете сказать

SELECT x.*, y.col1, y.col2, ... FROM x INNER JOIN y ON x.id = y.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...