Liebes Forum

ich komme einfach zu keiner Lösung.
Ich möchte schnell eine Datenbankauswertung machen.
Ich habe eine Tabelle (Varianten), in der den Varianten Optionen zugeordnet werden.
varianten_id | option_id
10 | 1
10 | 11
10 | 21
11 | 1
11 | 11
11 | 22
12 | 1
12 | 11
12 | 23
13 | 1
13 | 12
13 | 21
14 | 1
14 | 12
14 | 22
...
105 | 7
105 | 15
105 | 23
Ich hoffe der Aufbau der Tabelle wird deutlich. Nehmen wir an ich habe jetzt die Variante 12 mit den Optionen 1/11/23 ausgewählt. Dann möchte ich aus der Tabelle gerne alle Varianten filtern, die entstehen, wenn man jeweils eine Option ändert und in einer Tabelle speichern, die als key diese Option besitzt. Es wären also die Optionen
1 / 11 / (21 ... 23)
1 / (11 ... 15) / 23
(1 ... 7) / 11 / 23
also 15 Varianten.
Ich möchte das gerne direkt mit der Datenbankabfrage schaffen, mir fällt da aber absolut keine Abfrage ein, mit der das geht. (Als Notlösung könnte man natürlich die ganze Tabelle laden und dann das ganze mit php auswerten, was aber nicht sachgemäß wäre.) Hier ist die Anzahl der Optionen 3. Sie kann aber belibig groß sein (1 ...).
Ein Beispiel:
Nehmen wir an, es handelt sich bei dem Artikel um "Lampen" und man kann sich verschiedene Dinge (Optionsgruppen) auswählen. In dem Beispiel sind es 3 Optionsgruppen:
Optionsgruppe1 steht zum Beispiel für die "Größe" der Lampe und kann die Werte 1 ... 7 haben.
Optionsgruppe2 steht für die "Form" des Lampenfusses mit den möglichen Werten 11 ... 15 und
Optionsgruppe3 für "Muster" des Lampenfusses mit den Werten 21...23.
Beispielsweise für die Variante 12 stehen in der Tabelle oben die drei Einträge (Optionen) 1/11/23. Das entspricht den Optionen Größe: klein / Form: rund / Muster: kariert.
Als Ergebnis der SQL-Abfrage möchte ich gerne ein array mit den Varianten haben, die sich genau in einer Optionsgruppe unterscheiden. Der key des arrays soll die Option sein.
(Anmerkung: Eine kleine Erschwernis kommt hinzu: Bei den Einträgen oben handelt es sich um Varianten eines Artikels. Es gibt jedoch mehrere Artikel mit solchen Varianten. Die Zuordnung der Varianten zu den Artikeln erfolgt in einer anderen Tabelle. Ich müsste also noch zusätzlich eine Abfrage machen, mit der ich die Varianten des Artikels abfrage. Das könnte aber erst später oder mit php geschehen.)


ich komme einfach zu keiner Lösung.
Ich möchte schnell eine Datenbankauswertung machen.
Ich habe eine Tabelle (Varianten), in der den Varianten Optionen zugeordnet werden.
varianten_id | option_id
10 | 1
10 | 11
10 | 21
11 | 1
11 | 11
11 | 22
12 | 1
12 | 11
12 | 23
13 | 1
13 | 12
13 | 21
14 | 1
14 | 12
14 | 22
...
105 | 7
105 | 15
105 | 23
Ich hoffe der Aufbau der Tabelle wird deutlich. Nehmen wir an ich habe jetzt die Variante 12 mit den Optionen 1/11/23 ausgewählt. Dann möchte ich aus der Tabelle gerne alle Varianten filtern, die entstehen, wenn man jeweils eine Option ändert und in einer Tabelle speichern, die als key diese Option besitzt. Es wären also die Optionen
1 / 11 / (21 ... 23)
1 / (11 ... 15) / 23
(1 ... 7) / 11 / 23
also 15 Varianten.
Ich möchte das gerne direkt mit der Datenbankabfrage schaffen, mir fällt da aber absolut keine Abfrage ein, mit der das geht. (Als Notlösung könnte man natürlich die ganze Tabelle laden und dann das ganze mit php auswerten, was aber nicht sachgemäß wäre.) Hier ist die Anzahl der Optionen 3. Sie kann aber belibig groß sein (1 ...).
Ein Beispiel:
Nehmen wir an, es handelt sich bei dem Artikel um "Lampen" und man kann sich verschiedene Dinge (Optionsgruppen) auswählen. In dem Beispiel sind es 3 Optionsgruppen:
Optionsgruppe1 steht zum Beispiel für die "Größe" der Lampe und kann die Werte 1 ... 7 haben.
Optionsgruppe2 steht für die "Form" des Lampenfusses mit den möglichen Werten 11 ... 15 und
Optionsgruppe3 für "Muster" des Lampenfusses mit den Werten 21...23.
Beispielsweise für die Variante 12 stehen in der Tabelle oben die drei Einträge (Optionen) 1/11/23. Das entspricht den Optionen Größe: klein / Form: rund / Muster: kariert.
Als Ergebnis der SQL-Abfrage möchte ich gerne ein array mit den Varianten haben, die sich genau in einer Optionsgruppe unterscheiden. Der key des arrays soll die Option sein.
(Anmerkung: Eine kleine Erschwernis kommt hinzu: Bei den Einträgen oben handelt es sich um Varianten eines Artikels. Es gibt jedoch mehrere Artikel mit solchen Varianten. Die Zuordnung der Varianten zu den Artikeln erfolgt in einer anderen Tabelle. Ich müsste also noch zusätzlich eine Abfrage machen, mit der ich die Varianten des Artikels abfrage. Das könnte aber erst später oder mit php geschehen.)
Kommentar