Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Чем EXISTS отличается от JOIN ? / 13 сообщений из 13, страница 1 из 1
09.11.2013, 16:55:42
    #38458804
InterSky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
Как я понимаю эти три запроса полностью идентичны:
Код: sql
1.
2.
3.
select * from Table1 join Table2 on Table1.id=Table2.id
select * from Table1, Table2 where Table1.id=Table2.id
select * from Table1 where EXISTS (select * from Table2 where Table1.id=Table2.id)


Есть хоть какая-нибудь разница в этих запросах?
Может ли EXISTS сделать что-то чего не может JOIN?
...
Рейтинг: 0 / 0
09.11.2013, 18:43:07
    #38458884
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
InterSkyКак я понимаю эти три запроса полностью идентичны:
Код: sql
1.
2.
3.
select * from Table1 join Table2 on Table1.id=Table2.id
select * from Table1, Table2 where Table1.id=Table2.id
select * from Table1 where EXISTS (select * from Table2 where Table1.id=Table2.id)


Есть хоть какая-нибудь разница в этих запросах?
Может ли EXISTS сделать что-то чего не может JOIN?

может.
дольше работать.
...
Рейтинг: 0 / 0
09.11.2013, 23:47:16
    #38459052
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
InterSky,

Первые два идентичны.
Третий может дать меньше записей, т.к. не будет множить записи из таблицы Table1, если в таблице Table2 найдется несколько подходящих записей. И третий даст в результате только поля из таблицы Table1.
...
Рейтинг: 0 / 0
09.11.2013, 23:48:24
    #38459053
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
вадяInterSkyКак я понимаю эти три запроса полностью идентичны:
Код: sql
1.
2.
3.
select * from Table1 join Table2 on Table1.id=Table2.id
select * from Table1, Table2 where Table1.id=Table2.id
select * from Table1 where EXISTS (select * from Table2 where Table1.id=Table2.id)



Есть хоть какая-нибудь разница в этих запросах?
Может ли EXISTS сделать что-то чего не может JOIN?

может.
дольше работать.Быстрее - да, может. А вот дольше - не могу такой вариант подобрать.
...
Рейтинг: 0 / 0
10.11.2013, 00:03:40
    #38459065
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
miksoft,

(не уверен, но...)
теоретически, JOIN может оптимизироватся
(например пре-сорт?), а EXISTS -- врядли.

Другое дело что первые два запроса возврашают
данные из двух таблиц а третий -- только из
первой -- сравнивать два апельсина с айвой
как-то некузяво...
...
Рейтинг: 0 / 0
10.11.2013, 00:14:46
    #38459076
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
javajdbcmiksoft,

(не уверен, но...)
теоретически, JOIN может оптимизироватся
(например пре-сорт?), а EXISTS -- врядли.Насколько я в курсе, MySQL не умеет MERGE JOIN.
Даже HASH JOIN совсем недавно появился, а раньше только NESTED LOOPS был.

И даже в случае MERGE JOIN я не вижу, что мешает по этому же алгоритму выполнить и EXISTS.
...
Рейтинг: 0 / 0
10.11.2013, 21:55:23
    #38459612
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
miksoftНасколько я в курсе, MySQL не умеет MERGE JOIN.
Эммм... http://dev.mysql.com/doc/internals/en/optimizer-index-merge-join-type.html
...
Рейтинг: 0 / 0
10.11.2013, 23:05:39
    #38459654
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
AkinamiksoftНасколько я в курсе, MySQL не умеет MERGE JOIN.
Эммм... http://dev.mysql.com/doc/internals/en/optimizer-index-merge-join-type.html Тут некоторая путаница в терминологии. По ссылке Index Merge Join, а я говорил про MERGE JOIN .
...
Рейтинг: 0 / 0
11.11.2013, 00:56:33
    #38459712
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
miksoftAkinaпропущено...

Эммм... http://dev.mysql.com/doc/internals/en/optimizer-index-merge-join-type.html Тут некоторая путаница в терминологии. По ссылке Index Merge Join, а я говорил про MERGE JOIN .

Это ж одно и то же...
...
Рейтинг: 0 / 0
11.11.2013, 07:41:56
    #38459799
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
MasterZivmiksoftпропущено...
Тут некоторая путаница в терминологии. По ссылке Index Merge Join, а я говорил про MERGE JOIN .

Это ж одно и то же...нет.
...
Рейтинг: 0 / 0
11.11.2013, 08:46:15
    #38459833
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
miksoft,

Да, да.
...
Рейтинг: 0 / 0
11.11.2013, 10:04:30
    #38459895
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
MasterZivmiksoft,

Да, да.Аргументы будут?
...
Рейтинг: 0 / 0
11.11.2013, 12:16:59
    #38460098
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем EXISTS отличается от JOIN ?
miksoft,

Не, был неправ. Это другое.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Чем EXISTS отличается от JOIN ? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]