куда поместить предложение ON после нескольких соединений (внутреннего и левого) - PullRequest
0 голосов
/ 29 октября 2019

Мой вопрос заключается в том, что когда у меня есть SELECT с более чем одним JOIN. Где я должен поместить предложение ON?

Например:

  1. , когда это внутреннее соединение после внутреннего соединения
  2. , когда это внутреннее соединение послелевое соединение
  3. когда это левое соединение после внутреннего соединения

В первом примере я видел, как люди ставили предложение ON сразу после каждого соединения. Во втором примере я видел, как люди помещали все предложение ON после последнего JOIN. Так что сейчас я немного смущен тем, где его поставить, и дает ли он мне тот же ответ, даже если он находится в разных местах.

Ответы [ 2 ]

3 голосов
/ 29 октября 2019

Вы должны чередовать предложения on независимо от типа объединения. Итак:

from a join
     b
     on . . . left join
     c
     on . . .

И так далее, когда вы добавляете больше таблиц.

MySQL делает предложение on необязательным, что приводит в замешательство. Тем не менее, стандартный SQL допускает:

from a join
     b join
     c
     on b.? = c.?
     on a.? = b.?

Однако это обычно не рекомендуется. Людям трудно следовать за этим.

0 голосов
/ 29 октября 2019

Вы можете полностью понять СОЕДИНЕНИЯ здесь Общие сведения о соединениях SQL

Предложение ON упрощает понимание кода. Предложение ON может использоваться для объединения столбцов с разными именами. Мы используем предложение ON, чтобы указать условие соединения. Это позволяет нам задавать условия объединения отдельно от условий поиска или фильтрации в предложении WHERE


Фильтрация в предложении ON Соединения SQL с использованием WHERE или ON

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...