moin,
deine abfragen sind beide auch fachlich falsch, zumindestens nach dem was du als anforderung geschrieben hast.
1.Lösung
SELECT p.*
FROM People p
WHERE (SELECT COUNT(*)
FROM Personfeature pf
WHERE pf.person_id = p.id
) >= 2
;
2.Lösung
SELECT p.*
FROM People p
WHERE p.id IN (SELECT pf.id
FROM Personfeature pf
GROUP BY pf.person_id
HAVING COUNT(*) > 1
)
;
probiere beide aus, schaue welche schneller ausgeführt wird. indexe sollten allerdings auf den fremdschlüsseln liegen, wobei ich auch davon ausgehen, dass ein UNIQUE INDEX auf den spalten person_id und feature_id liegt.
Ilja