Новости
Документация
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: Andrew - 21/11/2003 - 07:46:19
Subject:UPDATE с подчиненным запросом
-----------------
Такого нельзя делать в MySQL. Кроме того у тебя в запросе ошибка.

> UPDATE site SET rating = 1 WHERE id IN ('SELECT id_url FROM
> site_rating').

У тебя select заключен в кавычки. Т.е. интерпретируется как строка.

Выполни сначала запрос: SELECT id_url FROM site_rating;
Создай массив из идентификаторов и передай его в IN().


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

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

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



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