Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सब्सक्राइबर पोस्ट और उपयोगकर्ता की अपनी पोस्ट दिखा रहा है

आप इसे अपनी क्वेरी को संशोधित करके कर सकते हैं:

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 आपकी समस्या को ठीक कर देगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दूरस्थ mysql से कनेक्ट करना टर्मिनल में काम करता है, PHP PDO स्क्रिप्ट के माध्यम से नहीं

  2. MySQL सर्वर का थ्रेड_स्टैक पैरामीटर - यह क्या है? यह कितना बड़ा होना चाहिए?

  3. php/mysql तालिका में पंक्तियों की गिनती नहीं कर रहा है

  4. हाइबरनेट:एक ही एप्लिकेशन में दो अलग-अलग डेटाबेस स्कीमा का उपयोग करना

  5. तालिका में समान संख्या पैटर्न ढूँढना