powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql синтаксис и ansi sql синтаксис
2 сообщений из 2, страница 1 из 1
mysql синтаксис и ansi sql синтаксис
    #39050503
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на stackoverflow заявляется, что эти два запроса эквивалентны

Код: sql
1.
2.
3.
4.
5.
6.
-- mysql

update t1 a 
    left join t2 b on a.uae = b.uae
set a.v = b.v 
where a.v = 0 and b.v != 0;



Код: sql
1.
2.
3.
4.
5.
6.
-- ansi sql

update a set v = 
(select b.v from a 
     left join b on a.uae = b.uae 
     where a.v = 0 and b.v != 0)



но неужели они и вправду эквивалентны при исполнении????
мне интуитивно почему-то кажется, что в первом запросе таблица составляется один раз, а во втором каждый раз...
или они действительно эквивалентны???
...
Рейтинг: 0 / 0
mysql синтаксис и ansi sql синтаксис
    #39050513
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lumix,
не эквивалентны.
Первый запрос обновляет записи t1 у которых v = 0.
Второй запрос не выполняется (ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause).
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql синтаксис и ansi sql синтаксис
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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