tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von lmarkus31
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
4560
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ultralight_kn ultralight_kn ist offline Grünschnabel
    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
     

  2. #2
    m3000 m3000 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    99
    Zitat Zitat von SQL in 21 Tagen
    Zu den leistungsfähigsten Merkmalen von SQL gehört die Fähigkeit, Daten über mehrere Tabellen hinweg abzurufen und zu manipulieren. Wenn man auf diese Mechanismen nicht zurückgreifen könnte, müßte man alle für eine Anwendung erforderlichen Datenelemente in einer einzelnen Tabelle speichern. Bei mehreren Anwendungen müßte man ohne gemeinsame Tabellen die gleichen Daten in mehreren Tabellen ablegen. Stellen Sie sich den riesigen Aufwand vor, wenn man Datenbanken und Tabellen neu entwerfen, aufbauen und füllen müßte, nur weil der Benutzer eine Abfrage mit einem neuen Datenelement benötigt. Durch die JOIN-Anweisung von SQL lassen sich kleinere und speziellere Tabellen erstellen, die außerdem leichter zu warten sind als große Tabellen.
    Details und Beispiele in unzähligen online-Quellen, etwa http://www.computerjockey.de/mcdba/S...agen/kap06.htm
     

  3. #3
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    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
     

  4. #4
    DarthShader DarthShader ist offline Mitglied Platin
    Registriert seit
    May 2004
    Beiträge
    684
    Zitat Zitat von melmager Beitrag anzeigen
    Jetzt gibt es verschiedene JOINS
    Ich verstehe gerade den Unterschied zwischen right join und left join nicht. Und dann gibt es ja noch inner join und outer join, sind das alles Arten und Weisen, wie die Joins bzw. Tabellen zusammengeführt werden?
     

  5. #5
    lmarkus31 lmarkus31 ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Beiträge
    318
    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
    m3000 bedankt sich. 

  6. #6
    Avatar von Busi
    Busi Busi ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    56
    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

  1. MS Access: Cross Join / Full Join: Anwendungsbeispiel
    Von semirb im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 13.12.06, 23:43
  2. [ACCESS] Inner Join nach Outer Join umformen ?
    Von AlexD1979 im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 02.05.06, 10:35
  3. MSSQL Inner Join zu MYSQL Inner Join
    Von joky_joky im Forum PHP
    Antworten: 2
    Letzter Beitrag: 16.09.05, 12:02
  4. Left Join und Inner Join
    Von Luda im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 17.02.04, 11:33
  5. Join oder nicht Join *grübel*
    Von Der Held im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 17.06.02, 09:31