Inner Join, Left Outer Join, Right Outer Join in 5 Minuten erklärt
-- START BEISPIELCODE --
-- definition eindeutiger wert
create table kunden (kunden_nr int,
nachname nvarchar(100), vorname nvarchar(100));
insert into kunden (kunden_nr,nachname,vorname) values(1,'Müller','Anne');
insert into kunden (kunden_nr,nachname,vorname) values(2,'Franke','Mike');
insert into kunden (kunden_nr,nachname,vorname) values(3,'Fredericks','Hanna');
create table bestellungen
(kunden_nr integer,
bestelldatum datetime,
artikelnr nvarchar(100),
anzahl int)
-- müller anne 2 Bestellungen
insert into bestellungen(kunden_nr,bestelldatum,artikelnr,anzahl) values(1,GETDATE(),'Artikel 1',44);
insert into bestellungen (kunden_nr,bestelldatum,artikelnr,anzahl) values(1,GETDATE(),'Artikel 2',17);
insert into bestellungen (kunden_nr,bestelldatum,artikelnr,anzahl) values(2,GETDATE(),'Artikel 7',32);
insert into bestellungen (kunden_nr,bestelldatum,artikelnr,anzahl) values(2,GETDATE(),'Artikel 2',42);
insert into bestellungen (kunden_nr,bestelldatum,artikelnr,anzahl) values(2,GETDATE(),'Artikel 9',4);
select * from kunden;
select * from bestellungen;
-- DER INNER JOIN
-- ZEIGE DIE KUNDEN AN, DIE IN DER TABELLE BESTELLUNGEN MINDESTENS EINE BESTELLUNG HABEN
SELECT kunden.nachname, kunden.kunden_nr, kunden.vorname, bestellungen.artikelnr, bestellungen.anzahl
FROM kunden INNER JOIN bestellungen
ON kunden.kunden_nr = bestellungen.kunden_nr
-- DER LEFT OUTER JOIN
-- ZEIGE ALLE KUNDEN MIT IHREN BESTELLUNGEN AN, EGAL OB SIE IN BESTELLUNGEN HABEN ODER NICHT
SELECT kunden.nachname, kunden.kunden_nr, kunden.vorname, bestellungen.artikelnr, bestellungen.anzahl
FROM kunden LEFT OUTER JOIN bestellungen
ON kunden.kunden_nr = bestellungen.kunden_nr
-- DER RIGHT OUTER JOIN
SELECT kunden.nachname, kunden.kunden_nr, kunden.vorname, bestellungen.artikelnr, bestellungen.anzahl
FROM bestellungen RIGHT OUTER JOIN kunden
ON kunden.kunden_nr = bestellungen.kunden_nr
-- END BEISPIELCODE --
Keine Kommentare:
Kommentar veröffentlichen