MySQL --- Явное INNER JOIN с выбором из нескольких таблиц - PullRequest
0 голосов
/ 08 октября 2018

Всякий раз, когда мне нужно выполнить внутреннее объединение, в котором я должен выбрать столбцы из нескольких таблиц, я получаю синтаксис, корректно работающий с неявными объединениями, без каких-либо трудностей.Однако я изо всех сил пытался заставить это работать с явными внутренними объединениями.

Позвольте мне проиллюстрировать пример из MySQL World Database

Мой иллюстративный запрос, использующий неявное внутреннее объединение , выглядит следующим образом:

SELECT Name, Language, Percentage
FROM Country, CountryLanguage WHERE Code = CountryCode ;

Это работает как ожидалось.Я могу иметь столбцы в любом порядке, из любой таблицы, без каких-либо проблем.

Я хотел бы иметь явную версию INNER JOIN вышеупомянутого запроса (используя "INNER JOIN" и "ON").

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Вы можете просто заменить , в неявном соединении словом JOIN:

SELECT Name, Language, Percentage
FROM Country
JOIN CountryLanguage 
WHERE Code = CountryCode

, и запрос будет работать нормально.Вы также можете заменить WHERE на ON, и снова все будет работать нормально.Наконец, если вы хотите явно назвать таблицы, из которых происходят столбцы (и это предпочтительный подход), вы должны использовать:

SELECT c.Name, cl.Language, cl.Percentage
FROM Country c
JOIN CountryLanguage cl
ON c.Code = cl.CountryCode
0 голосов
/ 08 октября 2018

Может быть, это будет похоже на

SELECT Name, Language, Percentage, 
FROM Country
INNER JOIN CountryLanguage ON Country.Code = CountryLanguage.CountryCode
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...