







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
11762
|
|