URL: https://www.overclockers.at/coding-stuff/mysql_frage_zu_join_144480/page_1 - zur Vollversion wechseln!
ich habe 3 tabellen und will sie alle 3 über das feld account joinen. wie heißt das dann richtig?
SELECT * FROM a JOIN b JOIN c USING(account)
oder
SELECT * FROM a JOIN b USING(account) JOIN c USING(account)
tia
MIK
ich mag eher die komplette schreibweise:
das braucht zwar vielleicht mehr platz, aber es is klarer was gemeint isCode:SELECT * FROM a INNER JOIN b USING(ab) INNER JOIN c USING(bc)
@watchout: da du dich sonst sehr gut auskennst, kannst du mir vllt den unterschied von deinem sql-befehl zu dem folgenden erklären?
Code:SELECT * FROM alpha a, bravo b, charlie c WHERE a.ab = b.ab AND b.ab=c.ab
Zitat von tomstig@watchout: da du dich sonst sehr gut auskennst, kannst du mir vllt den unterschied von deinem sql-befehl zu dem folgenden erklären?Code:SELECT * FROM alpha a, bravo b, charlie c WHERE a.ab = b.ab AND b.ab=c.ab
Vom result her eigentlich keinen - aber u.U. von der Runtime her - so gut kenn ich mich ehrlichgesagt nicht aus, aber ich denke dass MySQL besser Optimieren kann. [edit: vergessen...] Mit der Inner-Join schreibweise.
Da die "komma Schreibweise" ja praktisch nur einen Full Join über die drei Tables darstellt hab ich nach dem From ein relativ grosses Result-Set, wohingegen beim Inner Join das Result-Set kleiner wird.
Edit: Add:
Zusätzlich hat man beim outer join mit MySQL Probleme weil es das "OR" schlecht Optimiert... 
@tomstig: So was schreiben nur Oracle-Coder. Mittlerweile kann Oracle vermutlich auch INNER JOIN, aber Version 7 konnte es noch nicht, IIRC.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026