Выбор ответа Junior JOIN обновлено
RIGHT JOIN через LEFT
Вопрос
Какой запрос эквивалентен SELECT * FROM a RIGHT JOIN b ON a.id = b.a_id по набору строк?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: SELECT FROM b LEFT JOIN a ON a.id = b.aid. RIGHT JOIN сохраняет все строки правой таблицы.
Варианты ответа
SELECT * FROM b LEFT JOIN a ON a.id = b.a_idправильный ответSELECT * FROM a LEFT JOIN b ON a.id = b.a_idSELECT * FROM a JOIN b ON a.id = b.a_idSELECT * FROM a FULL JOIN b ON a.id = b.a_id
Разбор
RIGHT JOIN сохраняет все строки правой таблицы. Если поменять таблицы местами и написать LEFT JOIN, сохранятся те же строки b (порядок колонок в SELECT * будет другим, но набор данных тот же). LEFT JOIN без перестановки сохраняет a, INNER теряет b без пары, FULL добавляет лишние строки a без пары.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.