2010-05-18 1 views
16

Как говорит название, я хотел обходной путь для этого ...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)) 

Приветствия

ответ

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 

Вы, вероятно, хотите добавить ORDER BY в вложенном запросе.

+1

большое спасибо за этот .. Ну еще одна вещь .. Есть ли способ ограничить комментарии до 2 на content_id? –

+0

@ atif089: да, см. Эту статью: http://explainextended.com/2009/03/06/advanced-row-sampling/ – Quassnoi

+0

спасибо за ссылку .. разве это не слишком тяжело? Как им использовать это для пользовательского сайта социальных сетей –