Analoger SQL-Befehl:
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ProjektNr, ArtikelBew.Bestand FROM Artikel INNER JOIN ArtikelBew ON Artikel.ArtikelNr = ArtikelBew.ArtikelNr;
Inhalte
Tab1
Artikel
ArtikelNr Bezeichnung Bestand MindBestand
910030 Mist 0 0
91031 Käse 0 0
Tab2
ArtikelBew
ArtikelNr ProjektNr BewDatum Bestand
910030 1 920505 4
910030 2 920505 0
919999 1 1 2
Was bedeutet „Left“/“Right“?
Left Join Right Join Inner Join
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ProjektNr, ArtikelBew.Bestand FROM Artikel LEFT JOIN ArtikelBew ON Artikel.ArtikelNr = ArtikelBew.ArtikelNr;
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ProjektNr, ArtikelBew.Bestand FROM Artikel RIGHT JOIN ArtikelBew ON Artikel.ArtikelNr=ArtikelBew.ArtikelNr;
Abfrage2
ArtikelNr Bezeichnung ProjektNr Bestand
910030 Mist 1 4
910030 Mist 2 0
1 2
Ergebnis des Left Join
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ProjektNr, ArtikelBew.Bestand FROM Artikel LEFT JOIN ArtikelBew ON Artikel.ArtikelNr = ArtikelBew.ArtikelNr;
Abfrage2
ArtikelNr Bezeichnung ProjektNr Bestand
910030 Mist 1 4
910030 Mist 2 0
91031 Käse
Einträge in der Mastertabelle, die keinem Eintrag in der Detailtabelle zugewiesen wurde) innerhalb der Artikel gefunden werden?
Abfrage2
ArtikelNr Bezeichnung ProjektNr Bestand 91031 Käse
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ProjektNr, ArtikelBew.Bestand FROM Artikel LEFT JOIN ArtikelBew ON Artikel.ArtikelNr = ArtikelBew.ArtikelNr
WHERE (((ArtikelBew.ProjektNr) Is Null) AND ((ArtikelBew.Bestand) Is Null));
Aufgabe 4: Wie könnten Datensätze in der „Detailtabelle“ gefunden werden, für die Einträge in der Mastertabelle fehlen, wodurch keine „Referentielle Integrität“ definiert werden kann?
SELECT Artikel.ArtikelNr, Artikel.Bezeichnung, ArtikelBew.ArtikelNr, ArtikelBew.ProjektNr, ArtikelBew.Bestand
FROM Artikel RIGHT JOIN ArtikelBew ON Artikel.ArtikelNr = ArtikelBew.ArtikelNr WHERE (((Artikel.ArtikelNr) Is Null));