3.5.2 Eindeutige Schlüssel mit UNION-Abfragen
3.5.3 INSERT INTO mit UNION-Abfragen
Abfragen sind nun einmal nichts Beständiges und deshalb sind auch die mit einer UNION-Abfrage ermittelten Daten grundsätzlich erst einmal nicht zur Weitergabe geeignet. Jeglicher Versuch, die Daten per INSERT INTO-Abfrage einfach in eine temporäre Tabelle zu schreiben, schlägt fehl: SQL mag keine INSERT-Queries mit UNION-Abfragen als Datensatzquelle (siehe Abbildung 3.19). Die Lösung ist, wie in Abbildung 3.20 die UNION-Abfrage zu speichern und die Anfügeabfrage auf diese Abfrage zugreifen zu lassen. Das Ganze kann man wiederum auch in eine Abfrage schreiben:
INSERT INTO tblMitarbeiterUndKunden(MitarbeiterUndKundenID, Vorname, Nachname) SELECT * FROM (SELECT 'Kunde' & KundeID AS MitarbeiterUndKundenID, Vorname, Nachname FROM tblKunden UNION SELECT 'Mitarbeiter' & MitarbeiterID AS MitarbeiterUndKundenID, Vorname, Nachname FROM tblMitarbeiter)

Abbildung 3.19: UNION-Abfragen in INSERT INTO-Statements funktionieren nicht

Abbildung 3.20: INSERT INTO mit UNION-Abfrage
Nächster Abschnitt:
3.6 Suchen in m:n-Beziehungen
|