आप इसे अपनी क्वेरी को संशोधित करके कर सकते हैं:
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
यह उपयोगकर्ता के स्वयं के पदों का भी चयन करता है। आशा है कि इससे मदद मिलेगी।
अपडेट किया गया :जोड़ा गया GROUP BY POSTS.POSTID
इसलिए डुप्लिकेट हटा दिए जाते हैं क्योंकि आप केवल POSTS
. में डेटा ढूंढते हैं टेबल।
जब आप पासिंग वैल्यू जैसी क्वेरी चलाते हैं- जैसे। आईडी 1 वाले उपयोगकर्ता के लिए क्वेरी इस तरह दिखती है:
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
परिणाम हैं:
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
जब आप चुनिंदा क्वेरी को मान ठीक से पास करते हैं तो आपको यही मिलता है। SUBSCRIBERID
. को दिए गए मान और AUTHORID
चाहिए समान हो। LEFT JOIN आपकी समस्या को ठीक कर देगा।