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

क्या जॉइन क्वेरी से परिणाम सीमित करना संभव है?

यह मानते हुए कि आपकी तालिकाएँ इस तरह दिखती हैं, प्रति पोस्ट तीन सबसे हाल की टिप्पणियों के साथ इसे आपकी पोस्ट मिलनी चाहिए:

पोस्ट :
id , post_text

टिप्पणी :
id , post_id , comment_text

SELECT id, post_text, comment_text
FROM
(
    SELECT p.id, p.post_text, c.comment_text
           CASE
             WHEN @id != p.id THEN @row_num := 1
             ELSE @row_num := @row_num + 1
           END AS rank,
           @id := p.id
    FROM post p
    LEFT JOIN comment c ON ( c.post_id = p.id )
    JOIN ( SELECT @id:=NULL, @row_num:=0 ) x
    ORDER BY p.id,
             c.id DESC -- newest comments first
) y
WHERE rank <= 3;

उप-क्वेरी का उपयोग हाल की टिप्पणियों को पहले प्राप्त करने और उन्हें प्रति पोस्ट संख्या देने के लिए किया जाता है, जबकि बाहरी चयन पुरानी टिप्पणियों को हटा देता है।



  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 विदेशी कुंजी?

  2. JOOQ के साथ आगामी जन्मदिन ढूँढना

  3. पीडीओ बाइंड पैराम्स इस पर निर्भर करता है कि वे क्वेरी में मौजूद हैं या नहीं

  4. MySQL और SQLite दोनों के लिए अद्वितीय बाधाएं और डालें या अपडेट करें

  5. MySQL अपवाद - डेटा पढ़ने के दौरान गंभीर त्रुटि का सामना करना पड़ा