Обновление MySQK со связанными обновлениями таблиц присоединяет столбец

У меня есть таблица tbl_sc_3_4_ps со следующей структурой (множественные записи для id_team возможны для одного c_minute!!!):

+--------+---------+--------+----------+------+---------------------+
| id     | id_team | bill_n | bill_min | ps   | c_minute            |
+--------+---------+--------+----------+------+---------------------+
| 175019 | team1   | 0.0489 |     NULL | NULL | 2018-08-07 00:00:00 |
| 175020 | team1   | 0.0500 |     NULL | NULL | 2018-08-07 00:01:00 |
| 175021 | team1   | 0.0464 |     NULL | NULL | 2018-08-07 00:02:00 |
| 175022 | team1   | 0.0392 |     NULL | NULL | 2018-08-07 00:03:00 |
| 175023 | team1   | 0.0504 |     NULL | NULL | 2018-08-07 00:04:00 |
| 175024 | team1   | 0.0484 |     NULL | NULL | 2018-08-07 00:05:00 |
| 175025 | team1   | 0.0475 |     NULL | NULL | 2018-08-07 00:06:00 |
| 175026 | team1   | 0.0500 |     NULL | NULL | 2018-08-07 00:07:00 |
| 175027 | team1   | 0.0453 |     NULL | NULL | 2018-08-07 00:08:00 |
| 175028 | team1   | 0.0445 |     NULL | NULL | 2018-08-07 00:09:00 |
+--------+---------+--------+----------+------+---------------------+

и хотите обновить столбец bill_min из tbl_sc_3_4_bill_min (для одного c_minute возможен только один bill_min, c_minute - ключ):

+---------------------+----------+
| c_minute            | bill_min |
+---------------------+----------+
| 2018-08-07 00:00:00 |   0.0418 |
| 2018-08-07 00:01:00 |   0.0766 |
| 2018-08-07 00:02:00 |   0.1188 |
| 2018-08-07 00:03:00 |   0.1556 |
| 2018-08-07 00:04:00 |   0.2002 |
| 2018-08-07 00:05:00 |   0.2416 |
| 2018-08-07 00:06:00 |   0.2779 |
| 2018-08-07 00:07:00 |   0.3187 |
| 2018-08-07 00:08:00 |   0.3614 |
| 2018-08-07 00:09:00 |   0.4000 |
+---------------------+----------+

Мой SQL-оператор:

update dbsdme.tbl_su_3_4_ps as a
inner join dbsdme.tbl_sc_3_4_bill_min as b on b.c_minute = a.c_minute
set a.bill_min = b.bill_min
where a.bill_min is NULL;

Это обновляет не только столбец bill_min, но также столбец c_minute (с отметкой времени, когда выполняется запрос):

+--------+---------+--------+----------+------+---------------------+
| id     | id_team | bill_n | bill_min | ps   | c_minute            |
+--------+---------+--------+----------+------+---------------------+
| 175019 | team1   | 0.0489 |   0.0418 | NULL | 2018-08-12 10:29:31 |
| 175020 | team1   | 0.0500 |   0.0766 | NULL | 2018-08-12 10:29:31 |
| 175021 | team1   | 0.0464 |   0.1188 | NULL | 2018-08-12 10:29:31 |
| 175022 | team1   | 0.0392 |   0.1556 | NULL | 2018-08-12 10:29:31 |
| 175023 | team1   | 0.0504 |   0.2002 | NULL | 2018-08-12 10:29:31 |
| 175024 | team1   | 0.0484 |   0.2416 | NULL | 2018-08-12 10:29:31 |
| 175025 | team1   | 0.0475 |   0.2779 | NULL | 2018-08-12 10:29:31 |
| 175026 | team1   | 0.0500 |   0.3187 | NULL | 2018-08-12 10:29:31 |
| 175027 | team1   | 0.0453 |   0.3614 | NULL | 2018-08-12 10:29:31 |
| 175028 | team1   | 0.0445 |   0.4000 | NULL | 2018-08-12 10:29:31 |
+--------+---------+--------+----------+------+---------------------+

У кого-нибудь есть идеи, почему столбец c_minute также обновляется? Я просто хочу обновить bill_min.

С наилучшими пожеланиями

январь

0 ответов

Другие вопросы по тегам