Hallo,
Der Ansatz ist schonmal nicht schlecht, aber damit funktioniert der IN() nicht mehr, da plötzlich 2 werte zurückgegeben werden.
Ich kenne die verwendete datenbank zu wenig aber es könnte auch (auszugsweise)
AND inserate.id IN (
SELECT iid
FROM sonder
WHERE sid IN (1,2,3,15)
GROUP BY iid
HAVING COUNT(*) >= 4
)
funktionieren. Wie gesagt, je nach datenbank.
Und wenn das nicht funktioniert, kannst Du ja vielleicht auch auf
AND inserate.id IN (
SELECT iid
FROM ( SELECT iid, COUNT(*) as merkmalscheck
FROM sonder
WHERE sid IN (1,2,3,15)
GROUP BY iid
HAVING merkmalscheck) >= 4
)
)
zurückgreifen.
Grüße
Klaus