M-N Relation

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

  • M-N Relation

    Ich hab ein Problem bei M-N Relationen. Folgende Tabellen:
    Company (id,name)
    Branche (id, name)
    Branche_Company(id,branche_id,company_id)

    Ich brauche alle Companies und die Branchen in denen diese Companies sind.

    Wie würde man dies am effizientesten lösen? Ich brauch ja im Grunde Company_Id mit einer Liste von Branche_Ids.
    Der einzige Weg führt über ein Company RIGHT JOIN Branche_Company, nicht wahr? Danach sind noch zusätzliche Operationen zum Sortieren nötig.

    Ich frage dies aus Effizienzgründen.

    Ich hab ein
    PHP-Code:
    Select FROM Company INNER JOIN Branche_Company WHERE branche_id=%parameter
    Dadurch filtere ich alle nicht passenden companies, da aber eine Company in mehreren Branchen liegen kann, muss ich alle Branche pro Companie holen. Dies geschieht in nem Kontext, wo ich alle Branchen der selektierten Companies brauche. Sprich Einzelqueries kommen nicht in frage
    SQL Injection kitteh is...

  • #2
    Also erstmal ist SELECT * ganz schlecht. Einerseits weiß dann nicht MySQL was du willst und schaufelt unnötig Daten herum, andererseits sehen auch nicht andere Programmierer, was du eigentlich willst.

    Gehts dir nur um die ids oder willst du die Branchennamen? Willst du mit denen weiterarbeiten oder willst du sie nur ausgeben? Oder gehts dir rein um die Filterung?

    Kommentar


    • #3
      Re: M-N Relation

      SELECT * FROM company a INNER JOIN Branche_Company b ON a.id = b.company_id INNER JOIN Branche c ON b.branche_id = c.id WHERE b.branche_id = %parameter%

      Für "effizient" wirst du dann die entsprechenden Indizes setzen müssen.

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar

      Lädt...
      X