Můžete to udělat úpravou vašeho dotazu na :
SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = ? OR POSTS.AUTHORID = ?
GROUP BY POSTS.POSTID ORDER BY POSTS.POSTID DESC LIMIT 10
Vybírá také vlastní příspěvky uživatele. Doufám, že to pomůže.
Aktualizováno:Přidáno GROUP BY POSTS.POSTID
takže duplikáty jsou odstraněny, protože data hledáte pouze v POSTS
tabulka.
Když spustíte dotaz jako předávání hodnot- Např. pro uživatele s ID 1 dotaz vypadá takto:
SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = 1 OR POSTS.AUTHORID = 1 GROUP BY POSTS.POSTID
ORDER BY POSTS.POSTID DESC LIMIT 10
Výsledky jsou:
PostID AuthorID PostDate PostBody
3 1 2012-12-21 Oh Wait
2 3 2012-12-21 Bye Bye World
1 2 2012-12-20 Hello Word
To je to, co získáte, když správně předáte hodnoty do výběrového dotazu. Hodnoty předané do SUBSCRIBERID
a AUTHORID
měl by být stejný. LEFT JOIN by váš problém vyřešil.