Опубликовано: 01.03.2017
RIGHT JOIN делает те же самые функции, что и LEFT JOIN, кроме того, что правая таблица будет прочитана первой. Таким макаром, если в запросах из предшествующей главы LEFT поменять на RIGHT, то таблица результатов, грубо говоря, отразится по вертикали. Другими словами, в итоге заместо значений TableA будут записи TableB и напротив.
Сущность этой конструкции в том, что база сама выбирает, по каким столбцам ассоциировать и соединять воединыжды таблицы. А выбор этот падает на столбцы с схожими именами. В этом кроется засада &mdash база может избрать совсем не те столбцы для объединения и запрос будет работать совсем не так, как вы подразумевали.
Запрос:
В данном случае СУБД выбирает для объединения таблиц столбцы id и name, потому что они находятся в обеих таблицах и превращает начальный запрос в запрос последующего вида:
Но потому что у нас нет записей с схожим id и name сразу в обеих таблицах, то запрос возвратит пустой итог.
Если же сделать управляющей левую таблицу и поменять запрос:
Таковой запрос приводится СУБД к последующему: