Да: UNION объединяет совместимые результаты, а подзапросы, EXISTS и IN позволяют использовать другую таблицу без явного JOIN. Но выборка FROM a, b является соединением по смыслу, хотя слова JOIN нет.
Можно ли сделать выборку из двух таблиц без JOIN-ов?
Да: UNION объединяет совместимые результаты, а подзапросы, EXISTS и IN позволяют использовать другую таблицу без явного JOIN. Но выборка FROM a, b является соединением по смыслу, хотя слова JOIN нет.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да: UNION объединяет совместимые результаты, а подзапросы, EXISTS и IN позволяют использовать другую таблицу без явного JOIN. Но выборка FROM a, b является соединением по смыслу, хотя слова JOIN нет.
Нужно сначала определить желаемый результат. Если требуется проверить наличие связанных записей, удобен EXISTS; если сложить однотипные строки — UNION ALL. Обычный UNION дополнительно убирает дубликаты. Подзапрос не гарантирует иной физический план: оптимизатор может преобразовать выражение. Избегайте переписывания только ради отсутствия ключевого слова, если исходный JOIN понятнее.