Hallo zusammen,
ich brauche ein Query für folgene Sache: Ich habe eine Tabelle F, wo Firmen drinstehen, dann eine Tabelle S, wo mögliche Spezialisierungsgebiete drinstehen. Dann noch eine S2F, die Spezialisierungsgebiete Firmen in einem n:1 zuweist. Also eine Firma kann S1, S2, S3 haben, eine andere S2 usw.
Jetzt brauche ich ein Query, dass mir alle Firmen raussucht, die S2 haben und zusätzlich noch eine Liste ALLER S, die diese Firma dann hat, also z.B.
Firma 1 (hat S2)
S1, S2, S3
Firma 2 (Hat S2)
S2
Firma 3 (Hat S2)
S2, S4, S5
Dieses S1, S2, S3, bzw. S2, S4, S5 soll gleich vom Query als String zusammengebaut werden.
Folgendes habe ich bisher:
Ich bekomme immer ein Unkown column in meinen on-clauses. Wo ist der Fehler und gibts da ne bessere Variante?
Ich möchte das ganze sehr performant haben. Vielleicht gibts da was interessantes mit HAVING oder IN oder so, aber bis ich da alle durchprobiere frage ich hier lieber mal :-)
DANKE!!
strauberry
ich brauche ein Query für folgene Sache: Ich habe eine Tabelle F, wo Firmen drinstehen, dann eine Tabelle S, wo mögliche Spezialisierungsgebiete drinstehen. Dann noch eine S2F, die Spezialisierungsgebiete Firmen in einem n:1 zuweist. Also eine Firma kann S1, S2, S3 haben, eine andere S2 usw.
Jetzt brauche ich ein Query, dass mir alle Firmen raussucht, die S2 haben und zusätzlich noch eine Liste ALLER S, die diese Firma dann hat, also z.B.
Firma 1 (hat S2)
S1, S2, S3
Firma 2 (Hat S2)
S2
Firma 3 (Hat S2)
S2, S4, S5
Dieses S1, S2, S3, bzw. S2, S4, S5 soll gleich vom Query als String zusammengebaut werden.
Folgendes habe ich bisher:
PHP-Code:
SELECT F.id AS fID, F.*, GROUP_CONCAT (S SEPARATOR ', ') FROM F, S2F LEFT
JOIN S2F ON S2F.fID = fID LEFT JOIN S ON S2F.idS = S.id WHERE S2F.idS = 2
AND S2F.idF = fID GROUP BY F.id
Ich möchte das ganze sehr performant haben. Vielleicht gibts da was interessantes mit HAVING oder IN oder so, aber bis ich da alle durchprobiere frage ich hier lieber mal :-)
DANKE!!
strauberry
Kommentar