Обновление 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.
С наилучшими пожеланиями
январь