Обновите все записи поля в таблице, значение которой только в другой таблице - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть таблица A:

+---------------+------------+-------+-------------+
| name          | id_product | price | price_medium|
+---------------+------------+-------+-------------+
| phone         |         1  |   300 |         300 |
| mouse         |         2  |    50 |          75 |
| phone         |         1  |   250 |         300 |
| keyboard      |         3  |   100 |         100 |
| mouse         |         2  |   100 |          75 |
| phone         |         1  |   350 |         300 |
+---------------+------------+------+--------------+

В таблице B представлена ​​временная таблица, товары добавляются каждый раз при совершении покупки, а затем удаляются. Когда он будет отправлен, я хочу обновить в таблице A столбец "price_medium", который у меня есть в таблице B, для которого product_id является добавлением.

+---------------+------------+-------+-------------+
| name          | id_product | price | price_medium|
+---------------+------------+-------+-------------+
| phone         |         1  |   100 |         220 |
| mouse         |         2  |   125 |          92 |
| phone         |         1  |   100 |         220 |
+---------------+------------+------+--------------+

Окончательный результат будет в таблице A

+---------------+------------+-------+-------------+
| name          | id_product | price | price_medium|
+---------------+------------+-------+-------------+
| phone         |         1  |   300 |         220 |
| mouse         |         2  |    50 |          92 |
| phone         |         1  |   250 |         220 |
| keyboard      |         3  |   100 |         100 |
| mouse         |         2  |   100 |          92 |
| phone         |         1  |   350 |         220 |
+---------------+------------+------+--------------+

1 Ответ

0 голосов
/ 08 ноября 2018
  • Вы можете сделать Inner Join между двумя таблицами, используя id_product
  • Используйте Set для обновления price_medium в таблице A (равно price_medium в таблице B)

Попробуйте:

UPDATE tableA AS tA
JOIN tableB AS tB ON tB.id_product = tA.id_product 
SET tA.price_medium = tB.price_medium
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...