Kalle_Worms: LÖSUNG

Beitrag lesen

Hallo Vinzenz,

Sieht nach einem Selfjoin aus:

SELECT a.artikel_id
FROM tabelle AS a
INNER JOIN tabelle as b ON a.artikel_id = b.artikel_id
WHERE a.merkmal_id = 63 AND b.merkmal_id = 64

sollte das gewünschte Ergebnis liefern.

Danke dir. Pro zusätzlicher Bedingung kommt immer ein JOIN hinzu?

Ich glaube, diese Lösung ist mit PHP einfacher per for- Schleife zu generieren:

SELECT amk.artikel_id id, COUNT( * ) anz_mrk
FROM bia_artikel_merkmale amk
WHERE amk.masz <> 'n'
AND (
amk.merkmal_id =45
OR amk.merkmal_id =1
OR amk.merkmal_id =53
OR amk.merkmal_id =2
)
GROUP BY amk.artikel_id
HAVING COUNT( * ) =4

Als ich die Frage stellte, wusste ich nicht, dass man GROUP BY mit COUNT kombinieren und mit HAVING weiter einschränken kann.

Kalle