Klaus Mock: SQL-Abfrage

Beitrag lesen

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