Die folgenden zwei Abfragen zu erreichen, was ich mit meiner Tabellen zu tun:Was ist der beste Weg, um die Update-Abfrage zu schreiben?
Update person_role_memberships, events
set person_role_id = 2
where person_role_id = 32 and event_name = events.name and events.date_2 = curdate() - 1
;
-
update person_role_memberships set person_role_id = 2
where person_role_id = 32 and event_name in
(select name from events where date_2 = curdate() -1
);
Ich möchte wissen, was der bessere Weg zu tun, ist, dass in Bezug auf die Optimalität, Sicherheit (Fälle oder Nebenwirkungen) oder Best Practices?
Ich möchte die Update-Abfrage für jeden Datensatz von 'select name von Veranstaltungen, bei denen Datum_2 zurück laufen = curdate() -1' - würde 'exist' das tun? Ich existiere jedoch nur, um zu testen, ob etwas zurückgegeben wurde oder nicht. –
Sie haben richtig gedacht, aber der Test für die Existenz enthält 'person_role_memberships.event_name = event.name'. Es ist das gleiche wie Ihre 'IN' Auswahl. –
Und was macht 'select 1'? –