Erzeugen der Zuordnungstabelle
Du hast es sicherlich gemerkt. Beide Vorgehensweisen - zusätzlicher Join über die Mailadresse bzw. über das Geburtsdatum - bringen nicht das gewünschte Ergebnis.
Das wäre eigentlich nicht schlimm - bedeutet es doch nur, dass wir 4 oder 5 von ca. 170 Karten nicht zuordnen könnten, also unter 3%. Bei großen Datenmengen wäre das vollkommen in Ordnung, es geht uns ja um "das große Ganze" und da könnten wir mit diesem Fehler leben.
Sichern der Zuordnung als Zuordnungstabelle
Das Ergebnis, die Zuordnung zwischen Zahlkarte und Person, wollen wir uns für die Zukunft sichern. Wie schon im ersten Kapitel geht das entweder als (statische) Tabelle oder als (dynamischer) View.
Mit folgendem SQL-Befehl erzeugst du eine neue Tabelle, die die Zuordnung enthält:
Der Befehl CREATE TABLE
ist selbsterklärend. Vielleicht erkennst du auch deine beiden SQL-Befehle wieder, die du im letzten Kapitel hoffentlich selbst hinbekommen hast. Neu ist der Befehl UNION
in Zeile 7. Er stellt eine Mengenoperation auf den Abfrageergebnissen dar:
Erzeugen eines Zuordnungs-View
Die Tabelle hat den Vorteil, dass ein Zugriff darauf sehr schnell möglich ist; die Abfragen werden nicht neu ausgeführt. Das ist aber auch wieder genau der Nachteil, sollten sich die Ausgangsdaten ändern. Daher kann alternativ auch wieder ein Datenbank-View verwendet werden:
Aufgabe
In der online-Datenbank sind beide Varianten schon vorhanden, also die Tabelle
znrpnr
und der View v_znrpnr
. Probiere einmal aus, ob es einen Unterschied macht, wenn man Tabelle oder View verwendet:
- Suche alle Einträge in Tabelle oder View, die zur Person "Carlo Winkelmann" gehören.
- Wann hat Herr Winkelmann eingekauft und wo?