Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
UPDATE с подчиненным запросом (vetdoctor) 19/11/2003 - 22:40:09
      Re: UPDATE с подчиненным запросом (Andrew) 21/11/2003 - 07:46:19
      Re: UPDATE с подчиненным запросом (Lev) 22/11/2003 - 16:38:16

> Original message text:
> From: vetdoctor - 19/11/2003 - 22:40:09
> Subject:UPDATE с подчиненным запросом
> -----------------
> Помогите плиз разобраться с запросом!
> есть заполненная таблица "site" вида
> id auto inc
> url tinytext
> rating int5
> в ней текст
> id url rating
> 1 e.ru 0
> 2 d.ru 0
> 3 d.ru 0
>
> с помощью запроса нижеследующего запроса я могу изменить поле _rating_ у любого url, указав его id
>
> UPDATE site
> SET rating = 1
> WHERE id IN (1,3)
>
> при этом таблица "site" примет следующий вид:
> id url rating
> 1 e.ru 1
> 2 d.ru 0
> 3 d.ru 1
>
> Однако требуется чтоб значения поля _id_ (в нашем случае это значения 1,3) брались из другой таблицы (таблица "site_rating")
> вот эта таблица (site_rating), откуда нужно взять значения:
> rating smallint(5)
> id_url smallint(5)
> ее значения:
> id_url
> 1
> 3
>
> c учетом второй таблицы получаем запрос apdate с подчиненным запросом:
>
> UPDATE site
> SET rating = 1
> WHERE id IN ('SELECT id_url FROM site_rating')
>
> в результате запроса ожидаю таблицу "site":
> id url rating
> 1 e.ru 1
> 2 d.ru 0
> 3 d.ru 1
>
> Однако в результате выполнения такого запроса ничего не происходит.
> Весь день сегодня потерял вот над такой простенькой конструкцией :((((((
>


From: Lev - 22/11/2003 - 16:38:16
Subject:UPDATE с подчиненным запросом
-----------------
Боюсь ошибиться, но MySQL в UPDATE...IN() не допускает вложенные запросы.
Я обходил это так:
сначала запросом (который вложенный) вытаскивал список значений и формировал из него строку-перечисление, а уже ее подставлял в IN. Если значений с десяток, то это без проблем. Но енаверное правильнее подставить массив..



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
11762



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |