Ich habe folgende Standard-many-to-many-Beziehung: http://sqlfiddle.com/#!9/43bd68/28/0Many-to-many-Kombinationen
(vereinfachte Version) - Ich habe Produkt 1, die 2 Kategorien 1, 2, 3 und Produkt hat , die Kategorien 1, 3 hat.
Was ich versuche zu erreichen, ist die Produkte auszuwählen, die zu bestimmten Kombination von Kategorien gehören.
es illustrieren:
- Get Produkte, die zu den Kategorien gehören (1 oder 2) und zu den Kategorien (3) gehören. Dies sollte beide Produkte 1 und 2 zurückgeben
- Holen Sie sich Produkte, die zu Kategorien (2) gehören und zu Kategorien (3) gehören. Dies sollte nur Produkt 1
Die Kategorien zurückgeben sollten wie „Filter“ verhalten - das ist, warum mein erster Gedanke zu setzen WHERE category IN (1, 2) AND category IN (3)
war, aber das funktioniert nicht, da die Kategorie ein einzelner Wert für eine Zeile ist. Ich denke, ich brauche etwas wie "foreach Produkt und dann innerhalb des Produkts überprüfen, ob es Kategorie (1 oder 2) und Kategorie (3) hat".
Ist es möglich, dies mit einer SQL-Abfrage zu erreichen?
Vielen Dank für die schnelle Antwort. Könnten Sie mir bitte ein Beispiel für den ersten Fall nennen - "Kategorie IN (1,2) UND Kategorie IN (3)"? – o15a3d4l11s2
@ o15a3d4l11s2 Bitte überprüfen Sie die Änderung, die ich gemacht habe. –