PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Was genau bedeutet join (http://www.selfphp.de/forum/showthread.php?t=22339)

tsunamitsunami 03.11.2009 15:29:48

Was genau bedeutet join
 
Bisher habe ich join nie benutzen müssen.

Das habe ich gefunden

und auch das
und 100e Kopien der Seiten.

Überall steht, wie toll join ist und welche Möglichkeiten es gib aber nirgendwo genau, was es macht. Die Beispiele fangen gleich mit ellenlangen selects an.

Join soll mehrere Tabellen verknüpfen. Ja. Aber was ist daran besonderes?
Beispiel:
PHP-Code:

select vorname,name,statusname from mitgliederliste,statusliste where mitgliederliste.personen_id personen.id and mitgliederliste.status=statusliste.id 

Damit habe ich doch bereits 3 Tabellen verknüpft (statusliste, mitgliederliste und personen), ganz ohne join, oder?

cortex 03.11.2009 15:40:02

AW: Was genau bedeutet join
 
Zitat:

Zitat von tsunamitsunami (Beitrag 131897)
PHP-Code:

select vorname,name,statusname from mitgliederliste,statusliste where mitgliederliste.personen_id personen.id and mitgliederliste.status=statusliste.id 

Damit habe ich doch bereits 3 Tabellen verknüpft (statusliste, mitgliederliste und personen), ganz ohne join, oder?

das nennt sich implizierter join - du hast das bisher also unbewusst gemacht .-

mehr infos gibt's hier:

Einführung in Joins
Fortgeschrittene Jointechniken

cx

urvater 03.11.2009 15:40:58

AW: Was genau bedeutet join
 
Nun je nachdem welchen Join du nutzt bzw. wie du ihn schreibst, kannst du deinen Select auf mehrere Tabellen ausbreiten. Da man ja in der Regel DB Tabellen so anlegt, daß die Werte nicht mehrfach gespeichert werden ist ein Join hier das "Heilmittel" um mehrere Selects zu vermeiden.

Einfaches Beispiel:
Tabelle 1 beinhaltet alle Kundendaten (Name, Adresse etc.)
Tabelle 2 beinhaltet alle Produktdaten (Bezeichnung, Warennummer etc.)

Um nun eine Bestellung Speichern zu können benötigst du eine weitere Tabelle. In dieser speichert man dann nur noch die ID des Kunden, des Produktes und die Bestellmenge.
Um jetzt zu sehen welcher Kunde welche Produkte bestellt hat nimmt man einen Join, der die Kundendaten aus Tabelle 1 holt, dazu die passende Menge und Produkt-ID aus Tabell 3 holt und zu jeder Produkt-ID die wichtigen Daten aus Tabelle 2.

Würde hier ein Join nicht funktionieren müsste man 3 Selects ansetzen um zum gleichen Ergebnis zu kommen.

Indyk 03.11.2009 16:27:28

AW: Was genau bedeutet join
 
Mein Tipp:
MySQL-Joins verbildlicht

Und wie cortex schon sagte, du hast bereis JOINS benutzt ohne es zu wissen, die expliziete anweisung von JOINS bietet dir nur mehr möglichkeiten (siehe INNER, OUTER, LEFT ..)


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:06:55 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.