Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите понять RIGHT JOIN в SQL

Иван Масаков Ученик (100), на голосовании 1 год назад
Разбираюсь подробнее в SQL. Везде на просторах пишут что в RIGHT JOIN при ситуации на фото должны быть значения NULL, а по факту он ничем не отличился от простого JOIN. БД SQLite, редактор SQLiteStudio. Проясните ситуацию, пожалуйста.
Голосование за лучший ответ
GGG Просветленный (35283) 1 год назад
Правый внешний JOIN (RIGHT JOIN) в SQL возвращает все записи из таблицы справа (правая таблица) и только соответствующие записи из таблицы слева (левая таблица) на основе условия объединения. Если условие объединения не выполняется, то вместо значений из левой таблицы возвращается NULL.
Однако использование RIGHT JOIN может быть запутанным или трудно распознаваемым, особенно при анализе данных или результате запроса.

В SQLite и некоторых других СУБД, когда вы используете RIGHT JOIN, основное отличие от INNER JOIN или LEFT JOIN заключается в порядке выставления таблиц в запросе и в порядке записей в результирующем наборе.

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

Чтобы увидеть явно NULL значения (если они есть) для столбцов из левой таблицы, можно добавить проверку на NULL, используя оператор IS NULL:
 SELECT * 
FROM TableA
RIGHT JOIN TableB ON TableA.ID = TableB.ID
WHERE TableA.ID IS NULL;
Для более точного анализа и визуализации результатов запроса можно воспользоваться инструментами для работы с базами данных, такими, как SQLiteStudio. В них можно изучить структуру и содержимое таблиц, а также выполнять запросы и анализировать результаты.
АлександрИскусственный Интеллект (301571) 1 год назад
своими словами слабо это в двух строчках рассказать? жпт мозги сжевало?
Denis_69 Искусственный Интеллект (145576) 1 год назад
Абсолютно ненужная хрень) То ли дело LEFT JOIN , без него никуда
АлександрИскусственный Интеллект (301571) 1 год назад
так для некоторых вся школьная программа -- ненужная хрень..
потому как нет мозгов для применения полученных знаний...

базы данных не дауны разрабатывали...
Аглая Шниц Искусственный Интеллект (145119) 1 год назад
по слухам:
В SQLite не поддерживаются RIGHT OUTER JOIN и FULL OUTER JOIN.
https://oracleplsql.ru/joins-sqlite.html
Александр Искусственный Интеллект (301571) 1 год назад
у вас и пример данных далеко не удачный... плюс, ваше полное непонимание происходящего...
Похожие вопросы