Откровенная аналитика
11.04
Вопрос про SQL в котором легко ошибиться
На собеседованиях любят задавать вопрос про разницу union и union all. Смысл операторов прост: union all - объединяет все строки обеих таблиц union - делает то же самое, но сохраняет только уникальные строки
Но можно легко ошибиться в вопросе, сколько минимум строк получится при объединении таблиц (в первой 10 строк, во второй 5). Интуитивно первым в голову приходит ответ 10, потому что во второй могут быть все строки совпадающие с первой. Но на самом деле правильный ответ - 1. union удаляет все дубли, полученные после объединения, а они могут быть и в первой таблице
И в конце пара хороших практик по работе с объединением: 1⃣ Если точно известно, что в таблицах нет дублей - используй union all. Потому что union вычислительно намного сложнее из-за вычисление уникальных записей 2⃣ При объединении запросов перечисляй колонки явно (а не select *) - так не придётся чинить запрос, каждый раз, когда кто-то поменял таблицу
еще контент в этом сообществе
еще контент в этом соообществе
Откровенная аналитика
11.04
войдите, чтобы увидеть
и подписаться на интересных профи