Query bauen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Query bauen

    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:
    PHP-Code:
    SELECT F.id AS fIDF.*, GROUP_CONCAT (S SEPARATOR ', 'FROM FS2F LEFT 
    JOIN S2F ON S2F
    .fID fID LEFT JOIN S ON S2F.idS S.id WHERE S2F.idS 
    AND S2F.idF fID GROUP BY F.id 
    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

  • #2
    Alias darfst du nicht in ON, WHERE, GROUP BY verwenden.

    Kommentar


    • #3
      Hatte ich mich fast schon gedacht :-(

      Wenn ich F.id verwende, blickt er das auch nicht... sonst irgendwelche Ideen?

      Kommentar


      • #4
        würdest du bitte zukünftig immer deine aktuelle Abfrage posten. Hellsehen kann ich noch nicht

        Kommentar


        • #5
          PHP-Code:
          SELECT F.*, GROUP_CONCAT (S SEPARATOR ', 'FROM FS2F LEFT 
          JOIN S2F ON S2F
          .fID F.id LEFT JOIN S ON S2F.idS S.id WHERE S2F.idS 
          AND S2F.idF fID GROUP BY F.id 
          Hab nur die ID im ersten On-Clause vertauscht...

          Kommentar


          • #6
            und was ist mit dem in WHERE? keine Lust?

            Kommentar


            • #7
              Das hab ich jetzt nur hier im Forum übersehen weil meine Tabellen ja sowieso anders heißen. Willst mir sagen, dass es eigentlich funktionieren müsste?

              Kommentar


              • #8
                Original geschrieben von strauberry
                Das hab ich jetzt nur hier im Forum übersehen weil meine Tabellen ja sowieso anders heißen. Willst mir sagen, dass es eigentlich funktionieren müsste?
                Warum postest du eine andere Abfrage als die, die dir Probleme bereitet? Na dann viel Spass mit deinem großen Geheimnis von DB-Tabellen

                Kommentar


                • #9
                  Es ist doch genau die gleiche Anfrage, nur statt F heißt die Tabelle eben Firma. Das sollte ja jetzt nicht das Problem sein...

                  Kommentar

                  Lädt...
                  X