Spike Geschrieben 2. November 2010 Geschrieben 2. November 2010 Hi, ich bin gedanklich irgendwie in einer Sackgasse. Ich habe eine Produktdatenbank, einem Produkt können dabei z. B. mehrere Merkmale zugeordnet werden (Mehrfachauswahl). Diese speichere ich in einer Zwischentabelle. Nun möchte ich alle Produkte ausgeben, aber auch einen Filter anbieten, um nach diesen Merkmalen zu filtern. Aktuell frage ich alle Produkte ab und filtere dann bei der Ausgabe, was nicht so glücklich ist (z. B. auch wegen einer geplanten Blätteranzeige). Frage: Wie kann ich den Filter möglichst geschickt in einer Gesamtabfrage einbauen? Hier mal verkürzt alles notwendige: Tabelle "Produkt" id, name Tabelle "Farbe" id, name Tabelle "Produkt_Farbe" id, produkt_id, farbe_id Wie frage ich nun z. B. alle Produkte mit Farbe "blau" ab und beziehe die Zwischentabelle ein? Bei Einfachzuweisungen ist das einfach (da die ID direkt in der Produkttabelle steht), aber bei Mehrfachzuweisungen mit Zwischentabelle stehe ich aktuell ein wenig auf dem Schlauch. Im Resultset soll jedes Produkt nur einmal auftauchen. Ich müsste die Zwischentabelle mit einem Join und Distinct in das Select einbinden in der WHERE Klausel?
Reinhold Geschrieben 2. November 2010 Geschrieben 2. November 2010 Moin, um welches DBMS geht es denn bitte? Tabelle "Produkt" id, name Tabelle "Farbe" id, name Tabelle "Produkt_Farbe" id, produkt_id, farbe_id Wie frage ich nun z. B. alle Produkte mit Farbe "blau" ab ... Ich nehme an, du suchst sowas Select P.* from Produkt P inner join Produkt_Farbe PF on P.id = PF.produkt_id inner join Farbe F on F.id = PF.farbe_id where F.name = 'blau'; hth Reinhold
Spike Geschrieben 2. November 2010 Autor Geschrieben 2. November 2010 Ganz vergessen: mySQL! Dein Lösungsansatz ist aber perfekt. Zweimal inner join und dann mit where filtern. Danke!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden