Juist, dus je wilt berichten geschreven door iemand anders dan $user waar geen "instance" (lijkt "antwoord" te betekenen) voor $user verschijnt. Uit deze set wil je tien verschillende berichten selecteren.
Als dat een nauwkeurige omschrijving van het probleem is, doet dit wat je wilt:
SELECT *
FROM posts p
WHERE p.user_id <> 3
AND NOT EXISTS (
SELECT 1
FROM instances i
WHERE i.post_id = p.id
AND i.helped_by_user_id = 3
)
ORDER BY p.id
LIMIT 10;
Over het algemeen voelt het alsof het probleem hier is dat het probleem niet echt duidelijk is ingekaderd. Meestal, als je in duidelijk Engels kunt zeggen wat je wilt van een dataset, is het vrij eenvoudig om het te vertalen naar bruikbare SQL.