Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите отладить запрос, по Update 
V
    Опции темы
Klio
Дата 12.12.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 18.4.2008
Где: Харьков - СС_3

Репутация: нет
Всего: 1



Здравствуйте, помогите составить правильно запрос
Его суть: нужно изменить содержимое поля kol и прировнять к 0 (kol=0), но лишь в тех записях у которых date_iz является минимальным, но минимальным для каждого из товаров 
(в записях поле tovar не уникальное, оно повторяется)

были такие варианты:
Код

1- update part c set c.kol=0 where c.id = (select distinct a.id from part a where a.tovar=c.tovar and a.date_iz=(select min(b.date_iz) from part b where a.tovar=b.tovar));
2- update part c set c.kol=0 where c.date_iz =(select min(b.date_iz) from part b where c.tovar=b.tovar);
3- update part c set kol=0 where c.id in (select distinct a.id from part a where a.date_iz=(select min(b.date_iz) from part b where a.tovar=b.tovar));
4- было ещё несколько вариантов, но я их не сохранил

Но как бы они не были написаны ошибка всегда одна:
Цитата

1-You can't specify target table 'c' for update in FROM clause
2-(если не использовать переназначение "part" на "c")то -
   You can't specify target table 'part' for update in FROM clause

Помогите разрешить, заранее спасибо!!!
PM MAIL ICQ   Вверх
Gluttton
Дата 14.12.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Цитата(Klio @  12.12.2009,  10:56 Найти цитируемый пост)
4- было ещё несколько вариантов, но я их не сохранил

А такой вариант был smile?
Код

update part
set part.kol=0
    where part.id in
    (
        select a.id
        from part as a
            where a.tovar=part.tovar
            and a.date_iz=
            (
                select min(b.date_iz) as mim_date
                from part as b
                    where b.tovar=a.tovar
            )
    )



--------------------
Слава Україні!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.