SQL: Nur bei Vorliegen entsprechender Datensätze in anderer Tabelle Änderungen vornehmen

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Die Prüfung, ob entsprechende Datensätze in einer anderen Tabelle vorliegen, kann in der WHERE-Klausel in einem IN-Ausdruck als Unterabfrage formuliert werden. Alternativ kann auch ein EXISTS-Ausdruck verwendet werden.


Hinweis für Access-Anwender
Um die folgenden Abfragen selbst testen zu können, müssen die Tabellen der Übungsdatenbank vorhanden sein.


Soll z. B. die Gehaltserhöhung für die Mitarbeiter, die eine Prämie erhalten haben, 7,5% betragen, so kann man die Aktualisierungsabfrage so aufbauen:

UPDATE mitarbeiter AS m
SET    gehalt = gehalt * 1.075
WHERE  ma_nr IN( SELECT ma_nr
                 FROM   praemie )

Die zweite mögliche Formulierung wäre:

UPDATE mitarbeiter AS m
SET    gehalt = gehalt * 1.075
WHERE  EXISTS( SELECT NULL
               FROM   praemie
               WHERE  ma_nr = m.ma_nr)
Wiki hinweis.png

Anmerkung: Vermutlich ist die zweite Form (zumindest in Access) etwas schneller in der Ausführung als die erste Formulierung.



Zurück zur Übersicht