2016-04-18 14 views
1

Ich habe drei verschiedene Tabellen, die ich versuche, Informationen aus zu ziehen. In verschiedener Hinsicht verwandt. Ich versuche eine Join-Anweisung zu finden, die es mir erlaubt, die Informationen etwas besser zu ziehen als die beiden Abfragen, die ich jetzt bin.MySQL Join Abfrage mit mehreren Joins

Hier ist, was ich habe

SELECT * FROM reports LEFT JOIN students USING (sID) 

Dies ermöglicht es mir, die beiden Tabellen richtig zu verschmelzen. Jedoch - In der Berichtstabelle gibt es eine Zeile namens pID. Ich habe eine andere Tabelle namens test, die auch eine passende pID-Zeile hat, zusammen mit anderen Daten. Ich versuche auch, auf die Daten von dieser Tabelle zuzugreifen. Ist es möglich, drei Tische auf diese Weise zu verbinden? Nicht nur die Daten immer vom sID, aber die pID auch

+1

Sie sollten vorsichtig sein, wenn Sie Ihre Fragen markieren. Das Verbinden mit USING zeigt an, dass es wahrscheinlich mysql oder oracle ist. Das ist keine gültige Syntax in SQL Server. –

+0

Ja, es ist möglich, 3 (oder tausend) Tabellen zu verknüpfen – Strawberry

Antwort

3

Sie können folgende Aktionen

SELECT * 
FROM reports 
LEFT JOIN students USING (sID) 
LEFT JOIN table3 USING (pID) 

Wo table3 der Name Ihrer Tabelle.

1

Hallo Robert ja es ist möglich. Sie können eine Abfrage wie in den folgenden drei Tabellen, Berichten, Kursteilnehmern und Tests durchführen.

SELECT * 
FROM `reports` 
LEFT JOIN `students` ON `students.sid=reports.sid` 
LEFT JOIN `test` ON `reports.pid=tests.pid` 
+0

Verwenden Sie '(Backtic) anstelle von '(Tic) für Spalten- und Tabellennamen. Diese Where-Klausel wird auch dann ausfallen, wenn sie umgeschaltet wird. – xQbert

+0

Danke dafür. – Fil

+0

LEFT JOIN 'Studenten' ** ON ** nicht ** WO **. –