MySQL Update запрос - PullRequest
       2

MySQL Update запрос

2 голосов
/ 23 ноября 2010

Мне нужна помощь с этим обновлением MySQL

У меня есть три таблицы, как показано ниже.

tbl1
id eid quantity
1 3      2
2 4      3

tbl2
tid eid qnty status type
 1  3    1      1         1
 2  3    0      1         0
 3  4    1      1         1
 4  4    0      1         0

tbl3
id tid type 
1  1   1
2  2   0
3  3   1
4  4   0

Мне нужно обновление sql:

Найти X

Найти Y

Затем Обновить статус в tbl2 до 0, если X - Y> 0

X = tbl1.quantity - сумма (tbl2.qnty) где tbl1.eid =tbl2.eid AND type = 1

Другими словами:

X = tbl1.количество в этом eid - сумма (tbl2.qnty) в этом eid WHERE type = 1

Таким образом, X для eid 4 = 2 и X для eid 3 = 1

Y = ВЫБЕРИТЕ СЧЕТ (tbl3.id) ОТ tbl3 ГДЕ tbl2.tid = tbl3.tid И тип = 0 GROUP BY tid

Таким образом, tid 2 = 1 и tid 4 = 1

Обновите состояние в tble2 до 0, если X - Y> 0

Окончательный результат будет таким, что статус для tbl2.tid:4 будет обновлен до 0, потому что 2 - 1 = 1

Вы оценили ваш вклад.

1 Ответ

0 голосов
/ 23 ноября 2010

Я не могу проверить это прямо сейчас, поэтому я не на 100% уверен в синтаксисе, но я думаю, что вы можете сделать что-то вроде этого:

обновление tbl2 присоединиться к tbl1 на tbl1.eid = tbl2.eid присоединиться к tbl3 на tbl2.tid = tbl3 установить статус = 0 где tbl2.type = 1 и tbl1.quantity - сумма (tbl2.qnty) - (выберите количество (tbl3.id) ОТ tbl3 ГДЕ tbl2.tid = tbl3.tid И тип = 0 GROUP BY tid)> 0

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