yo,
mein Problem ist, dass ein Produkt z.B. 4 von 5 Optionen mit folgenden Lieferzeiten haben kann "normal" und "Express", das 5 jedoch entweder keine Lieferzeit, oder z.B. warum auch immer Overnight
hört sich erst mal nach einer feststellung an und weniger nach einen problem.
ich möchte verhindern, dass der Kunde ein Produkt zur Auswahl erhält, was sich auf Grund der Optionen nicht bestellen lässt, da z.B. nicht alle die selben Lieferzeiten haben
da muss ich noch mal nachfragen. schließlich ist es möglich, eine option mit overnight und eine option mit normal zu verbinden, indem man einfach die längste lieferzeit nimmt, hier also normal. ich denke aber mal, du wirst die lieferzeit für die option dann mehrfach gespeichert haben, indem du overnight, express und normal für eine option speicherst und deswegen überprüfen, ob die lieferzeiten alle gleich sind. ist in meinen augen dann nicht so gelungen, ehrlich gesagt, könnte ich mir gut vorstellen, dass das daten-design eventuell sich verbessern ließe.
aber zurück zu deinem problem. da du mehrere tabellen hast, wirst du für ein produkt und seine entsprechenden option, bzw. lieferzeiten mehrere datensätze geliefert bekommen, wenn du eine abfrage machst. der produktname der datensätze gleicht sich immer, nur in den optionen und lieferzeiten unterscheiden sich die jeweiligen datensätze dann.
da du nur drei unterschiedliche lieferzeiten hast, wäre eine denkbare lösung wäre, indem du in deine abfrage eine bedingung hinzu nimmst, um alle anderen bis auf eine lieferzeit auszuschließen:
WHERE t_lieferzeit = "normal"
dann solltest du nur noch datensätze mit lieferzeiten "normal" bekommen. der rest ist einfach, noch zwei weitere abfragen der gleichen art mit "express" und "overnight" für die bedingung und alle drei abfragen verbindest du mit dem UNION Operator. schau mal, ob das hilft.
Ilja