[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массовый UPDATE таблицы
grumich
Здравствуйте.

Таблица rezerv_zakazov:
zakaz|artikul | name | rezerv
1 |1201 | Монитор | 3
1 |1301 | Клавиатура | 5

Таблица baza_tovarov:
artikul | name | koli4estvo
1201 | Монитор | 5
1301 | Клавиатура | 10

_______________________________________________________
Хочу создать кнопку "Списать товар с базы", при нажатии на которую в базе товаров ( baza_tovarov) обновлялся бы столбец "koli4estvo" для всех артикулов в данном заказе. (Происходило: "Количество - Резерв").

Если для одной строки я пишу:
UPDATE  baza_tovarov SET koli4estvo=koli4estvo-(SELECT rezerv FROM rezerv_zakazov WHERE zakaz=1 AND artikul='1201' ) WHERE artikul='1201';


То сразу для всех строк в одном запросе не знаю как записать, подскажите пожалуйста.
Спасибо.
sergeiss
Цитата (grumich @ 17.04.2014 - 12:30)
WHERE artikul='1201'

Вот у тебя есть условие. Если ты хочешь для набора строк сделать обновление, то и укажи тут другое условие, соответствующее этому набору строк. И в подстроке тебе надо указать ссылку на таблицу... Вобщем, где-то примерно так:
UPDATE  baza_tovarov b
SET koli4estvo=koli4estvo-(SELECT rezerv FROM rezerv_zakazov WHERE zakaz=b.zakaz AND artikul=b.artikul ) WHERE zakaz = 1;


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
grumich
Цитата
И в подстроке тебе надо указать ссылку на таблицу...



А что физически эта ссылка дает?
sergeiss
Цитата (grumich @ 17.04.2014 - 13:52)
А что физически эта ссылка дает?

Позволяет связать подзапрос (например, условия в нем, как сделано в данном случае) с данными из основного запроса.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
grumich
#1054 - Unknown column 'zakaz' in 'where clause'


Я так понял он ругается на то, что колонки zakaz в таблице baza_tovarov нет.
sergeiss
Цитата (grumich @ 17.04.2014 - 14:36)
Я так понял он ругается на то, что колонки zakaz в таблице baza_tovarov нет.

Вполне возможно, я же не знаю структуру твоих данных :) А ты ее не показал.
В таком случае так попробуй:
UPDATE  baza_tovarov 
SET koli4estvo=koli4estvo-(SELECT rezerv FROM rezerv_zakazov WHERE zakaz=1 AND artikul='1201' )
WHERE artikul IN (SELECT artikul FROM rezerv_zakazov WHERE zakaz=1);


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.