a.department = b.code;
В чём прикол юзать алиасы здесь?
полезная привычка. правило хорошего тона.
правило хорошего тона не использовать a.* на проде
почему хорошего? неудобно читать и понимать к чему каждый алиас относится если их много и, по-моему, назначение алиасов - различать таблицы / поля в ситуациях с одинаковым названием
ну какбы да, различать принадлежность поля к таблице, ну тут плохо именованные алиасы, а если они именованные то всё понятно. и как только добавляешь в запрос новую таблицу, то приходится лазить по тем полям на которые ругнётся парсер и дописывать. хужее когда потом кто-то другой читает запрос и без алиаса пытается угадать из какой таблицы вышло какое-то поле. не, всётаки алиасы по-умолчанию это хорошо.
я скорее про то, что предпочту написать так select employees.*, departments.* from employees join departments on employees.department = departments.code;
Потому что не придётся переписывать запрос при изменении таблицы. Вторая причина - если полей много и вам нужно по факту только несколько, SELECT * создаёт лишний трафик и мешает использовать index access
у меня вопрос про использование алиасов на имена таблиц, не про астерикс
а если надо два раза departments указать. или employees ,чтобы вытянуть работника и его начальника. дба структуры может не знать, у меня есть пример, популярная erp, сейчас там 7тыс таблиц в 150 тыс полей суммарно. запомнить как бы нереально. к счастью для меня ORM генерирует алиасы формата T1, T2 ... , можно хоть понять к какой таблице какое поле в резалтсете или условии.
так я как раз об этом кейсе упомянул в своем сообщении "назначение алиасов - различать таблицы / поля в ситуациях с одинаковым названием", конечно тогда буду использовать, куда без них похоже кому-то удобно так, кому-то иначе — дело вкуса
Обсуждают сегодня