Mit den Testdaten von dieser Seite ...
https://www.mysqltutorial.org/mysql-update-join/
und dieser SQL-Anweisung:
MariaDB [test]> UPDATE employees
INNER JOIN
merits ON employees.performance = merits.performance
SET
salary = salary + salary * percentage;
wird sichtbar, wie die MariaDB-Shell dabei hilft, das aufgetretene Problem („matches exists, but nothing to do“) zu analysieren:
Query OK, 6 rows affected (0.011 sec)
Rows matched: 7 Changed: 6 Warnings: 0
Query OK
- Kein Fehler bei Syntax, Namen oder Datentypen.
matched: 7
- Zeilen, die zum JOIN und zur WHERE-Clausel passen.
Changed: 6
- Zeilen, die tatsächlich verändert wurden. Entspricht affected rows.
Bevor jemand fragt: In der obigen Tabelle ist salary
in einem Fall 0
. 0+0*x=0
, da gab es also nichts zu ändern.