UPDATE tabel1 a
LEFT JOIN tabel2 b on a.id = b.id
SET a.name = 'boo',
b.name2 = 'boo'
WHERE a.id = 1;
Toevoeging op 12/03/2014 15:46:32:
Of, extra optie die je mogelijk bedoelt, als het puur om het id gaat (een key dus), dan kan je er een foreign key op plaatsen. Als je dan het id in de ene verandert en de foreign key op CASCADE hebt gezet, dan gaan gelinkte records in de andere tabel mee.
het gaat om een code, als je inlogt ziet het systeem welke code je hebt (0,1,2,3,4,9) deze kolom "code" staat in 2 verschillende tabellen.
Mij lijkt nu de oplossing om een join te gebruiken.
De gebruiker logt in met een gebruikersnaam en wachtwoord.
De code is dus puur voor wat de gebruiker/supervisor kan en mag.
Wat als er in de tweede tabel geen matchend record gevonden wordt?
@Michael
Omdat één vergissing er toe kan leiden, dat je gegevens wijzigt of wist die niet gewijzigd of gewist zouden moeten worden.
Ik gebruik zelf bij uitzondering ook wels een join update, maar alleen daar waar het geen kwaad kan (lees in een testomgeving).
Simpel ,je kent het vershil tussen een LEFT JOIN en een INNER JOIN. Dus bij een LEFT JOIN wordt de tabel wel geupdate als er in de andere tabel geen match is, bij een INNER JOIN wordt er in dat geval niets geupdate.
Wat betreft je opmerking over vergissingen, dat is natuurlijk je eigen verantwoordelijkheid. Doe je het los van elkaar dan krijg je weer andere zaken waar je over na moet gaan denken, bijvoorbeeld dat de ene update wel lukt en de andere niet. Naast overigens het feit dat ook dan je te veel of te weinig records kunt updaten.
Om eerlijk te zijn zie ik het grote bezwaar dus niet.