Помогите составить SQL запрос в БД

m0le[x]
На сайте с 08.03.2009
Offline
102
528

В общем, буду очень благодарен человеку, который поможет составить правильный запрос в БД.

Такая ситуация:

Есть таблицы cat и prod

В таблице cat поля: p_id и c_id

В таблице prod поля: p_id и count

Нужно в таблице prod у всех p_id которые пренадлежат определенному c_id из таблицы cat, увеличить значение count в 2 раза

То есть, например:

Таблица cat:

1 - 10

2 - 10

3 - 10

4 - 15

5 - 15

Tаблица prod:

1 - 100

2 - 100

3 - 100

4 - 100

5 - 100

Нужно в таблице prod сделать значение 200 у тех p_id у которых c_id = 10 в таблице cat, а именно, привести таблицу prod к такому виду:

1 - 200

2 - 200

3 - 200

4 - 100

5 - 100

Надеюсь понятно описал.

★ Combinat - реально мощная CPA партнерка! (https://combinat.pro/?utm_source=sesign)
[umka]
На сайте с 25.05.2008
Offline
456
#1

Примерно так:

update cat c, prod p set p.count=p.count*2 where p.p_id=c.p_id and c.c_id=определённый_c_id

Но перед этим сделать резервные копии таблиц :)

Лог в помощь!
m0le[x]
На сайте с 08.03.2009
Offline
102
#2

Что то не хочет менять у всех id одной категории(

update cat c, prod p set p.count=p.count*2 where p.p_id=c.p_id and c.c_id=определённый_c_id так ничего не меняет.

update cat c, prod p set p.count=p.count*2 where p.p_id=200 если конкретно id задать, так вот поменяет у id 200, а как же все таки сопоставить эти две таблицы

DP
На сайте с 24.04.2012
Offline
16
#3

Уже ночь, так что может полный бред, но можете попробовать так:


UPDATE `prod` SET `count`=`count`*2 WHERE `p_id` IN(SELECT p_id FROM `cat` WHERE `c_id`='определенный id')
m0le[x]
На сайте с 08.03.2009
Offline
102
#4

developer_php, вот спасибо большое! Все получилось! [umka], так же спасибо за помощь.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий