INNER JOIN mit 5 Tabellen

feixe

Dude
7 Mai 2006
80
3
Moin!

Also ich will 5 Tabellen mit JOINS verknüpfen. Hab bis jetz schon bissl rumprobiert, aber so richtig hats noch nich funktioniert.

TABELLEN (PS = Primärschlüssel; FS = Fremdschlüssel)

Artikel (ArtikelNr = PS)

Teilung (TeilungsNr = PS; ArtikelNr = FS)

Mitarbeiter (Mitarbeiter_Code = PS)

Beschichtungsdverfahren (BeschNr = PS)

Chargen (ChargenNr = PS; Mitarbeiter_Code = FS; BeschNr = FS)


Ich hoffe ihr könnt mir weiterhelfen.

Greetz
 
Juuhuu, jetzt hab ichs :dance:

Für alle die es wollen:

SELECT *
FROM
(((Chargen INNER JOIN Teilung ON Chargen.ChargenNr = Teilung.TeilungsNr)
INNER JOIN Mitarbeiter ON Chargen.Mitarbeiter_Code = Mitarbeiter.Mitarbeiter_Code)
INNER JOIN Beschichtungsverfahren ON Chargen.BeschichtungsverfahrenNr = Beschichtungsverfahren.BeschichtungsverfahrenNr)
INNER JOIN Artikel ON Teilung.ArtikelNr = Artikel.ArtikelNr
WHERE Chargen.ChargenNr = (SELECT max(ChargenNr) FROM Chargen)


Was man nich alles rauskriegt mitn bissl rumprobieren.
 
wenn man sich mal folgende anschaut..

PHP:
SELECT * FROM Chargen                       AS c
         INNER JOIN Teilung                 AS t ON c.ChargenNr = t.TeilungsNr
         INNER JOIN Mitarbeiter             AS m ON c.Mitarbeiter_Code = m.Mitarbeiter_Code
         INNER JOIN Beschichtungsverfahren  AS b ON c.BeschichtungsverfahrenNr = b.BeschichtungsverfahrenNr
         INNER JOIN Artikel                 AS a ON t.ArtikelNr = a.ArtikelNr
         WHERE c.ChargenNr = (SELECT max(ChargenNr) FROM Chargen)

stellt sich die frage: wieso wird ein sub-select verwendet. wenn doch gerade mal ein einziger relevanter treffer gewollt ist.

wieso wird das result-set nicht sortiert abgefragt und nur das erste davon genommen?

*ich kann nur hoffen, das jetzt keiner plump die antwort postet. so hast du die chance die lösung auf diese frage auch in weniger als 10 minuten zu finden ;)
 
ich würde dir raten den Teil:
Code:
SELECT max(ChargenNr) FROM Chargen
als Extra-Abfrage vorher zu machen und dann in den Query einzufügen, da dies für MySQL einen deutlichen Geschwindigkeitsschub auf Grund eines leichteren Querys bedeutet ;)