1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
4560
4560
EMPFEHLEN
-
24.04.07 16:00 #1
- Registriert seit
- Apr 2007
- Beiträge
- 1
hallo zusammen
könnt ihr einem sql neuling (vielleicht anhand eines beispiels - northwind) den befehl "join" erklären?
danke
-
Details und Beispiele in unzähligen online-Quellen, etwa http://www.computerjockey.de/mcdba/S...agen/kap06.htm
Zitat von SQL in 21 Tagen
-
Die Erlärung ist aber nichtssagend

JOIN ist ein SQL Befehl um zwei Tabellen mit einander zu verbinden.
Jetzt gibt es verschiedene JOINS
select * from a join b
ist ein cross join
jede Tabellenzeile der a Tabelle wird mit der b tabelle verknüpft
Tabelle A
a1
a2
Tabelle B
b1
b2
ergibt
a1 b1
a1 b2
a2 b1
a2 b2
oder drastischer wenn Tabelle a 100 Einträge hat und b ebenso ergibt das
10000 Datensätze
also sollte man alles tun um crossjoin zu vermeiden
Wann immer es geht sollte man auf Schlüsselfelder zurückgreifen
Die Schlüsselfelder können beim left oder right join benutzt werden um dem Join anzugeben wann eine Verküpfung gemacht werden soll
Tabelle a feld data,index
a1,1
a2,1
a3,2
Tabelle b feld data,fremdindex
b1,1
b2,2
b3,3
select * from a left join b on a.index = b.fremdindex
verknüpft nur die Datenzeilen bei überienstimmung des index mit fremdindex
Ergebnis:
a1,1,b1,1
a2,1,b1,1
a3,2,b2,2
also deutlich weniger
das nur mal ganz ganz kurz zu join
-
03.05.07 09:13 #4
- Registriert seit
- May 2004
- Beiträge
- 684
-
Hallo,
erstmal LEFT JOIN ist nur ein Synonym für LEFT OUTER JOIN , das gleiche gilt für RIGHT JOIN bzw. RIGHT OUTER JOIN
<Tabelle A> LEFT JOIN <Tabelle B> ON ....
Dieser Join liefert alle Ergebnisse aus Tabelle A, auch wenn keine entsprechenden Daten in Tabelle B enthalten sind
<Tabelle A> RIGHT JOIN <Tabelle B> ON ....
Dieser Join liefert alle Ergebnisse aus Tabelle B, auch wenn keine entsprechenden Daten in Tabelle A enthalten sind
<Tabelle A> FULL JOIN <Tabelle B> ON ....
Dieser Join liefert alle Ergebnisse aus Tabelle A, auch wenn keine entsprechenden Daten in Tabelle B enthalten sind UND alle Ergebnisse aus Tabelle B, auch wenn es keine entsprechenden Daten in Tabelle A gibt.
INNER JOIN dagegen liefern nur dann Daten, wenn in beiden Tabellen Daten zu einer Bedingung vorhanden sind.
Markus
-
Hallo,
unter Wiki findet man unter http://de.wikipedia.org/wiki/SQL#Abfrage:_SELECT wuderbare Beispiele für verschiedenste Join Arten. Vielleicht Hilft dir das ein wenig.
rigth join und left join bewirken, wenn ich mich recht entsinne, das alle einträger der rechten Tabelle angezeigt werden, auch wenn sie mit der linken nicht verknüpft werden können. Und umgekehret.
SELECT * FROM table_a RIGHT JOIN table_b
ON table_a.keyfield = table_b.foreign_keyfield
<zusatz>oder du nimmst das was mein Vorgänger geschrieben hat wärend ich tippte</zusatz>
Ähnliche Themen
-
MS Access: Cross Join / Full Join: Anwendungsbeispiel
Von semirb im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 13.12.06, 23:43 -
[ACCESS] Inner Join nach Outer Join umformen ?
Von AlexD1979 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 02.05.06, 10:35 -
MSSQL Inner Join zu MYSQL Inner Join
Von joky_joky im Forum PHPAntworten: 2Letzter Beitrag: 16.09.05, 12:02 -
Left Join und Inner Join
Von Luda im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 17.02.04, 11:33 -
Join oder nicht Join *grübel*
Von Der Held im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.06.02, 09:31





Zitieren
Login





