MySql Abfrage mit mehreren Werten in einer Spalte - geht das ?

daft075

Grünschnabel
das schaut dann ca. so aus, ...

| ID | f_id |

| 01 | 100 |
| 01 | 200 |
| 01 | 300 |
| 02 | 100 |
| 02 | 300 |
| 03 | 200 |
| 03 | 300 |
. .
. .


jetzt will ich nur diejenige ID's die f_id 100 und gleichzeitig f_id 200 haben

wenn ich UND Operator benutze, dann bekomme ich nur einen Fehler.
Operator ODER funktioniert ganz normal, bringt mir aber nichts

Danke für jede Hilfe ...
 
Hi ComFreak.

Das ist eine Kreuztabelle, deswegen habe ich mehrere ID's.
Es sind sowohl in der Linke, als auch in der Rechten Spalte fremd ID's die von anderen Tabellen kommen.
Eine ist für Produkte, und die andere für Kategorien.
Jedes Produkt hat mehrere Kategorien, und es soll so gefiltert werden das man nur die Produkte sieht die gleichzeitig bestimmte Kategorien beinhalten.

Ich war mir sicher das auf diese Art und weise nicht geht, aber da ich kein Experte bin, dachte ich mir, fragst mal im Forum nach.

Trotz dem stellt sich die Frage, was muss ich tun damit das aber funktioniert.
 
So auf die schnelle geraten
SQL:
SELECT
	id
FROM
	mytable
WHERE
	GROUP_CONCAT(f_id ORDER BY f_id DESC SEPARATOR ',') = '100,200'
GROUP BY id

Es gibt sicher auch noch performantere Möglichkeiten.

ggf auch so
SQL:
SELECT
	id
FROM
	mytable
WHERE
	f_id IN (100, 200)
GROUP BY
	id
HAVING
	COUNT(*) = 2
 
Zuletzt bearbeitet von einem Moderator:
Zurück