Abfrage endet bei Komma

flowsn

Neuer Benutzer
Beiträge
1
Hallo Leute,

ich habe mich jetzt doch mal hier im Forum angemeldet.

Für meinen Arbeitgeber versuche ich fieberhaft eine spezielle MySQL-Abfrage so aufzubauen, dass diese über drei Tabellen arbeitet und mir die Ergebnisse in einer einzigen Ansicht zusammensetzt.

Funktioniert eigentlich auch... nur nicht zur gänze.

Betroffen sind bei mir die Tabellen:
products
products_description
allergenfilter

Die Tabelle "products" enthält artikelspezifische Informationen, "products_description" die Beschreibung des Artikels und "allergenfilter" enthält die Klarschrift der hinterlegten Allergene.

In der "products" sind die Allergene als ID hinterlegt. Also z.b. 6, 8, usw...
Insgesamt sind es mehr als 20 Allergene die zur Verfügung stehen.

Mein Ziel ist nun eine Abfrage zu erstellen, die mir neben der Produktbeschreibung (tab: products_description") und einigen Basisinformationen aus "products", ebenfalls das Allergen aus "allergenfilter" in Klarschrift anzeigt.

Alle Informationen werden angezeigt, lediglich die Allergene werden nicht ganz aufgeführt.
Vermutlich liegt es daran, weil in der Tabelle "products" im Feld [alergens] die Allergen-ID's durchgehend mit Kommatrennung gespeichert sind. In der Tabelle "allergenfilter" stehen die Allergene jedoch mit Ihren ID's in einzelnen Zeilen.

Hier meine Abfrage:

SELECT DISTINCT p.products_model AS Artikelnummer, products_name AS Artikelname, pd.products_description AS Artikelbeschreibung, products_vpe_value AS Gewicht_VPE, products_weight AS Produktgewicht, af.af_bezeichnung AS Allergene
FROM products p, products_description pd, allergenfilter af
WHERE p.manufacturers_id = 193
AND p.variantenartikel = 0
AND pd.products_id = p.products_id
AND af.af_id = p.alergens
ORDER BY p.products_id ASC
LIMIT 0 , 6000


Als Ergebnis wird zum Schluss lediglich ein Allergen aufgeführt, auch wenn mehrere vorhanden sind .

Ich hoffe sehr das ihr mir folgen könnt, bin kein guter Erklärbär :D

Danke und viele Grüße,
Flowsn
 
Werbung:
Vermutlich liegt es daran, weil in der Tabelle "products" im Feld [alergens] die Allergen-ID's durchgehend mit Kommatrennung gespeichert sind.

Exakt. Das ist keine Kunst, sondern Müll und kann daher weg. Beschäftige Dich mit Normalisierung. Wenn Du solche 'Kunststücke' machen willst, dann verwendet Arrays und eine passende Datenbank, die damit umgehen kann. MySQL kann es nicht.
 
Zurück
Oben