Statement ok?

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

  • Statement ok?

    Ich habe eine Frage, ob dieses Statement ok ist (im Sinne von performant, "sauber"):

    Die Tabelle hat 2 Spalten: ID (Cocktail), ID Zutat)
    Das heisst z.B. für Cocktail ID 1 gibt es z.B. 4 Einträge für 4 Zutaten.

    Ich möchte nun nach Cocktail IDs suchen, die z.B. genau 4 bestimmte Zutaten enthalten.

    Meine Idee: Zunächst alle Einträge herausfiltern, die die Zutaten enthalten.
    Nach cocktail_id gruppieren und jene Gruppen herausfiltern, die 4 Einträge haben.

    SELECT count(zutat_id ) AS anzahl, cocktail_id
    FROM czutat
    WHERE zutat_id IN (3,5,10,20)
    GROUP BY cocktail_id
    HAVING anzahl =7
    order by cocktail_id

    Dankeschön!
    Suche immer Linkpartner für meine Cocktailseite ;-)

  • #2
    sieht ok aus.

    Kommentar


    • #3
      Allgemein:
      was man noch zur Performance sagen könnte,
      dass die Indexierung von Spalten, die in 'where' oder 'order by' stehen bringen zusätzliche Performance bei den Select- Abfragen in den grösseren Tabellen.
      leider wird genau diese Indexierung bei update und insert die Geschwindigkeit senken.

      sorry, wenn ich dir nichts neues erzählt habe
      Slava
      bituniverse.com

      Kommentar

      Lädt...
      X