Blutschlumpf
Fleet Admiral
- Registriert
- März 2001
- Beiträge
- 20.656
Ich habe folgendes Konstrukt:
Tabelle a) mit auto_increment Primärschlüssel
Tabelle b) mit variabler Anzahl Datensätzen die je den Primärschlüssel aus a und einen 2. Wert enthalten.
Ich möchte nun eine Abfrage auf Tabelle a erweitern die die Werte aus Tabelle 2 enthält.
Wenn ich das ganze mit LEFT JOIN mache bekomme ich das in etwa, aber mit dem Nebeneffekt dass ich wenn in Tabelle b 2 Werte zu einem Datensatz aus a drin sind, bekomme ich bei der Abfrage 2 Datensätze.
Das lässt sich schlecht verarbeiten und es gibt zum anderen das Problem dass man so auch nicht nach mehr als einem Wert aus Tabelle 2 filtern kann.
Gibt es evtl. eine Möglichkeit dass man das so joined dass da nachher eine Art Array rauskommt so dass jeder Datensatz genau eine Spalte in Tabelle a darstellt und die Werte aus Tabelle b als Aray in einem Feld der Abfrage landen ?
Mal als Beispiel
Mit einem normalen LEFT JOIN bekomme ich:
Ich hätte aber gerne:
Zudem würde ich gerne nach mehr als einem Wert unter Farbe filtern.
Umgebung ist MySQL 5 + PHP 5. Ihc könnte das zwar durch ne Abfrage auf a und dann nochmal in PHP auf Tabelle b lösen, das ganze wäre allerdings der Performance-Killer wenn da Tausende Abfragen stattfinden.
Tabelle a) mit auto_increment Primärschlüssel
Tabelle b) mit variabler Anzahl Datensätzen die je den Primärschlüssel aus a und einen 2. Wert enthalten.
Ich möchte nun eine Abfrage auf Tabelle a erweitern die die Werte aus Tabelle 2 enthält.
Wenn ich das ganze mit LEFT JOIN mache bekomme ich das in etwa, aber mit dem Nebeneffekt dass ich wenn in Tabelle b 2 Werte zu einem Datensatz aus a drin sind, bekomme ich bei der Abfrage 2 Datensätze.
Das lässt sich schlecht verarbeiten und es gibt zum anderen das Problem dass man so auch nicht nach mehr als einem Wert aus Tabelle 2 filtern kann.
Gibt es evtl. eine Möglichkeit dass man das so joined dass da nachher eine Art Array rauskommt so dass jeder Datensatz genau eine Spalte in Tabelle a darstellt und die Werte aus Tabelle b als Aray in einem Feld der Abfrage landen ?
Mal als Beispiel
Code:
Tabelle a: produke
id modell preis
1 aaaaa 1234
2 bbbbb 1234
3 ccccc 1234
4 ddddd 1234
5 eeeee 1234
Tabelle b: farben
produktid farbe
1 rot
2 rot
2 blau
5 gelb
Mit einem normalen LEFT JOIN bekomme ich:
Code:
id modell preis farbe
1 aaaaa 1234 rot
2 bbbbb 1234 rot
2 bbbbb 1234 blau
3 ccccc 1234
4 ddddd 1234
5 eeeee 1234 gelb
Ich hätte aber gerne:
Code:
id modell preis farbe
1 aaaaa 1234 rot
2 bbbbb 1234 rot,blau
3 ccccc 1234
4 ddddd 1234
5 eeeee 1234 gelb
Zudem würde ich gerne nach mehr als einem Wert unter Farbe filtern.
Umgebung ist MySQL 5 + PHP 5. Ihc könnte das zwar durch ne Abfrage auf a und dann nochmal in PHP auf Tabelle b lösen, das ganze wäre allerdings der Performance-Killer wenn da Tausende Abfragen stattfinden.