2016-08-03 7 views
0

Ich habe einige Tabellen in meiner Datenbank, drei wichtigsten und eine, die die Viele-zu-viele-Beziehungen enthält.Verwenden Sie mehrere Ergebnisse einer Abfrage innerhalb der Abfrage mit Joins

1. Student (student_id, student_name) 
2. Sport (sport_id, sport_name) 
3. Departm (depart_id, depart_name) 
4. Sch (sch_id, sch_name) 
5. StudSport(relationid, studendid, sportid, departid, schid) 

Was ich tun möchte, ist z.B. rufen Sie den Namen der Abteilung basierend auf den Beziehungen ab, wenn ich die ID kenne. Ich kann die ids wie diese:

SELECT departid, schid from studsport 
inner join Student on student_id = studentid 
inner join Sport on sport_id = sportid 
where student_id = 1 and sport_id=2 

aber ich will den Namen der Abteilung und den Sch von ihren entsprechenden Tabellen bekommen, und ich weiß nicht, wie das zu tun.

Antwort

0

Da Sie bei Student oder Sport nichts auswählen, können Sie die entsprechenden inneren Verknüpfungen entfernen.

SELECT d.depart_name, sch.sch_name FROM StudSport s 
INNER JOIN Sch sch ON s.schid = sch.sch_id 
INNER JOIN Departm d ON s.departid = d.depart_id 
WHERE s.studendid = 1 AND s.sportid = 2 
+0

das hat super funktioniert, vielen Dank! – MariaZ

0

So ähnlich ???

Dies ist nicht getestet, eine Geige macht es viel einfacher, Antworten zu geben.

BEARBEITEN - Ich habe Ihre ursprüngliche Abfrage falsch gelesen - bevor die downvotes anfangen zu regnen - es jetzt zu beheben.

Die Art und Weise Sie LEFT OUTER verwenden sollten und INNER verbindet, ist, wie die Daten gemeint ist (auch hier wird eine Geige normalerweise sehr nützlich sein), aber es ist nur ein paar schließt sich von dem, was Sie haben ich denke:

select * 

from studsport 
join student on studsport.studentid = student.student_id 
join sport on studsport.sportid = sport.sport_id 
left outer Join Sch on StudSport.schid = Sch.sch_id 
left outer join Departm on studsport.depart_id = studsport.departid 

where student_id = 1 and sport_id=2 
+0

Ooh ja links Outer Joins, ich werde dies versuchen, danke! – MariaZ

Verwandte Themen