2010-05-18 12 views
16

Wie der Titel schon sagt, wollte ich eine Abhilfe für dieses ...MySQL Subquery LIMIT

SELECT 
    comments.comment_id, 
    comments.content_id, 
    comments.user_id, 
    comments.`comment`, 
    comments.comment_time, 
    NULL 
FROM 
    comments 
WHERE 
    (comments.content_id IN (SELECT content.content_id FROM content WHERE content.user_id = 1 LIMIT 0, 10)) 

Prost

Antwort

18
SELECT comments.comment_id, 
     comments.content_id, 
     comments.user_id, 
     comments.`comment`, 
     comments.comment_time, 
     NULL 
FROM (
     SELECT content.content_id 
     FROM content 
     WHERE content.user_id = 1 
     LIMIT 10 
     ) q 
JOIN comments 
ON  comments.content_id = q.content_id 

Sie werden wahrscheinlich eine ORDER BY in die verschachtelte Abfrage hinzufügen möchten.

+1

Vielen Dank für diese .. Nun noch eine Sache .. Gibt es eine Möglichkeit, LIMIT Kommentare zu 2 per content_id? –

+0

@ atif089: ja, siehe diesen Artikel: http://explainextended.com/2009/03/06/advanced-row-sampling/ – Quassnoi

+0

danke für den Link .. wäre das nicht zu schwer? Als ich dies für eine benutzerdefinierte soziale Netzwerk-Website verwenden –