Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
Добрый день, есть непонятки такие:
в чем отличительная разница между записями:

select * from A cross join B where A.id = B.id
select * from A IINER JOIN B ON A.id = B.id

они дают одно и то же , может по скорости работы есть разница между ними.? В Википедии написано, что они абсолютно равнозначны и все РСУБД оптимизаторы прокручивают алгоритм выборки нужных множест одинаково
27 фев 14, 16:35    [15641406]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
mr.davidos,

select * from A INNER JOIN B,
можно и так писать, можно и так select * from A, B
27 фев 14, 16:37    [15641431]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
aleks2
Guest
Тем, что IINER JOIN понятнее.
А cross join придумали для другого случая.
27 фев 14, 16:38    [15641439]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Запрос, где условия соединения таблиц - отдельно, а условия фильтрации - отдельно, читается и понимается гораздо легче.
27 фев 14, 16:50    [15641528]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
а как работает udate или delete с JOIN?
т е он создает временную таблицу результата, где соединяет ту, которую нужно изменить и ту, что используется для join-а, а потом на основе каких-то ключей он просто меняет данные в исходной что-ли?
27 фев 14, 19:21    [15642451]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
mr.davidos
mr.davidos,

select * from A INNER JOIN B,
можно и так писать
Точно можно и так?
27 фев 14, 19:33    [15642512]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
iap,

в MySQL точно.
разве нельзя?
27 фев 14, 19:37    [15642536]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
mr.davidos
iap,

в MySQL точно.
разве нельзя?
INNER не может быть без ON
Думаю, что и в любой другой СУБД так же.
Это стандарт, сынок!
27 фев 14, 19:38    [15642546]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
iap
mr.davidos
iap,

в MySQL точно.
разве нельзя?
INNER не может быть без ON
Думаю, что и в любой другой СУБД так же.
Это стандарт, сынок!


сынок мой в MySQL у меня может)))
28 фев 14, 14:11    [15646499]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
mr.davidos
Member

Откуда:
Сообщений: 137
mr.davidos
а как работает udate или delete с JOIN?
т е он создает временную таблицу результата, где соединяет ту, которую нужно изменить и ту, что используется для join-а, а потом на основе каких-то ключей он просто меняет данные в исходной что-ли?



все же, как это происходит технически??
28 фев 14, 14:34    [15646718]     Ответить | Цитировать Сообщить модератору
 Re: Техническая разница между INNER JOIN и CROSS JOIN  [new]
Glory
Member

Откуда:
Сообщений: 104751
mr.davidos
все же, как это происходит технически??

Взгляните на план конкретного запроса и увидите
28 фев 14, 14:35    [15646731]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить