Mysql join запросы - в чем разница?

A
На сайте с 12.10.2011
Offline
213
142

Всем привит,

Насколько я понял два запроса (c JOIN и без) вернут одно и тоже, а именно эти:


 SELECT * FROM nomenclature, description WHERE nomenclature.id = description.id;
 SELECT * FROM nomenclature, description INNER JOIN nomenclature ON nomenclature.id = description.id

1) Можно так и так, или принято использовать второй вариант? 

2) По скорости одно и то же?

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#1

Чем проще запрос, тем быстрее он работает это догма.

При работает с одной таблицей JOIN не имеет никакого смысла.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
A
На сайте с 12.10.2011
Offline
213
#2
так там 2 таблицы
L
На сайте с 10.02.2015
Offline
249
#3

1) Я явно джойню
2) Должно быть одинаково, смотрите EXPLAIN, profiling

M
На сайте с 04.12.2013
Offline
223
#4

В втором зачем опять написали nomenclature после FROM?

Как выше написали, должно быть одинаково. Перечисление таблиц после FROM через запятую – это тот же INNER/CROSS JOIN.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
A
На сайте с 12.10.2011
Offline
213
#5
да во втором  nomenclature лишняя, значит без нее правильно. И будет тоже самое что первый вариант значит?
D
На сайте с 28.06.2008
Offline
1108
#6
alexverem #:
да во втором  nomenclature лишняя, значит без нее правильно. И будет тоже самое что первый вариант значит?

Вам уже ответили что INNER JOIN тут бессмысленно применять, таблица то одна и та же.

A
На сайте с 12.10.2011
Offline
213
#7
ок спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий