2009-05-20 2 views
0

Ich habe gesehen, wie 2 Tabellen innerlich verbunden werden, wo eine Spalte gleich dem Inhalt in einer anderen Spalte ist. aber wie mache ich das mit 7 Tischen?Wie schließe ich 7 Tabellen an, in denen eine Spalte (die in allen Tabellen existiert) in allen Tabellen den gleichen Inhalt hat?

danke allen, Ich fand es heraus lol nach einer langen Zeit. dies scheint

SELECT * 
FROM 
    tbl_school 
    INNER JOIN tbl_apprequirments ON (tbl_school.schoolname = tbl_apprequirments.schoolname) 
    INNER JOIN tbl_citygallery ON (tbl_apprequirments.schoolname = tbl_citygallery.schoolname) 
    INNER JOIN tbl_schoolgallery ON (tbl_citygallery.schoolname = tbl_schoolgallery.schoolname) 
    INNER JOIN tbl_livingexp ON (tbl_schoolgallery.schoolname = tbl_livingexp.schoolname) 
    INNER JOIN tbl_tuition ON (tbl_livingexp.schoolname = tbl_tuition.schoolname) 

    where tbl_school.schoolname = 'glendale community college'; 
+0

Ich denke, es würde helfen, wenn Sie das konkretisieren waren und enthalten ein Beispiel für Ihre Tabellen – Noah

+0

Wenn Sie sich dieses Bild http://navidoor.com/img.jpg ansehen, werden Sie bemerken, dass alle Tabellen eine Spalte mit dem Namen Schulname haben. was ich im Grunde tun muss, ist eine Join-Abfrage mit allen Tabellen ausführen, wo der Schuhname = "etwas" –

+0

Wenn Sie 7 Tabellen beitreten müssen sicherstellen, dass alle Join-Spalten indiziert sind (in allen Tabellen). – rojoca

Antwort

3
SELECT * FROM t1 JOIN t2 JOIN t3 JOIN t4 JOIN t5 
    ON (t2.c=t1.c AND t3.c=t1.c AND t4.c=t1.c AND t5.c=t1.c) 

MySQL bietet eine Abkürzung für diese Arbeit:

SELECT * FROM t1 JOIN (t2, t3, t4, t5) 
    ON (t2.c=t1.c AND t3.c=t1.c AND t4.c=t1.c AND t5.c=t1.c) 

Dieses Beispiel ist für 5 Tische. Sie können bei Bedarf wiederholen.

Siehe MySQL join syntax.

Edit: nach der Klärung von sarmenhb sehen, ich denke, diese Abfrage funktioniert auch:

SELECT * FROM t1 JOIN (t2, t3, t4, t5, t6, t7) 
    USING (schoolname) 
    WHERE t1.schoolname = 'name' 
+0

Ich zähle 5, nicht 7 Tabellen;) – Stephan202

+0

@ Stephan202, ich bin sicher, dass das OP die Idee bekommen wird. :) –

+0

select * von tbl_school JOIN (tbl_tuition, tbl_livingexp, tbl_schoolgallery, tbl_apprequirments, tbl_citygallery) VERWENDUNG (Schulname) wo tbl_school.'schoolname' = 'glendale community college'; –

0

so etwas wie dieses Try ...

Select data 
from table as tbl1 
join as tbl2 on tbl2.data = tbl1.data 
join as tbl3 on tbl3.data = tbl1.data 

ist es das, was Sie suchen?

1

Nach 2 von ihnen verbinden, nehmen Sie den thrid zu den beiden ersten, dann den vierten auf den ersten 3 usw.

Select * 
    From T1 Join T2 On <criteria> 
      Join T3, on <criteria> 
      Join T4 On <Criteria> 
      etc... 
Verwandte Themen