Andre: SQL - Abfrage (zum Verständniss)

Beitrag lesen

Also ersteinmal ein großes Dankeschön!
Hab nicht erwartet das du mir gleich den ganzen Code lieferst ;-)
Aber es funktioniert einwandfrei, genau so wie ich es wollte.

Mich jetzt nicht undankbar einschätzen, aber ich würde es auch gerne vollständig verstehen ;-)

[code lang=sql]
SELECT
        pe1.wert,
        pe2.wert,

hier werden doch Aliasnamen erstellt oder?
Ich wusste gar nicht das so funktioniert...

sum(auftragposition.menge) AS Menge
   FROM produktd

INNER JOIN produkteigenschaft pe1

Bedeutet das, dass du ein Ergebniss nur für die Variable pe1 holst?

ON produkt.id = pe1.produkt_id
      -- und jetzt nur die Produkteingeschaften LÄNGE
      AND pe1.Name = 'länge'
   INNER JOIN produkteigenschaft pe2

Und hier wird das Ergebniss mit farbe in die Variable pe2 geschrieben, oder?

ON produkt.id = pe2.produkt_id
      -- und jetzt nur die Produkteingeschaften FARBE
      AND pe2.Name = 'farbe'
   INNER JOIN auftragposition
      ON produkt.id = auftragposition.produkt_id

Wo ist auf Übersichtlicher Betrachtung JOIN besser als ohne?
Ohne wäre ja dann:

oben bei SELECT die tabellen auftragposition,produkt schreiben
und dann in der WHERE Klausel produkt.id = auftragposition.produkt_id. Oder sehe ich da was falsch?

INNER JOIN auftrag
      ON auftragposition.auftrag_id = auftrag.id
      AND auftrag.lieferdatum BETWEEN "2007-01-01" AND "2007-02-01"

Ok BETWEEN ist natürlich besser als das vorherige ;-)

GROUP BY pe1.wert,
            pe2.wert
   ORDER BY Menge DESC

Du musst also die Tabelle 'produkteigenschaft' 2x joinen.

Ja genau, aber ich wusste nicht wie *g*

Gruss, Frank