LIMIT подзапросов MySQL

Как следует из названия, я хотел обходной путь для этого...

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))

Ваше здоровье


person Atif    schedule 18.05.2010    source источник


Ответы (1)


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 во вложенный запрос.

person Quassnoi    schedule 18.05.2010
comment
Большое спасибо за это .. Ну, еще кое-что .. Есть ли способ ОГРАНИЧИТЬ количество комментариев до 2 на content_id ? - person Atif; 18.05.2010
comment
@atif089: да, см. эту статью: explainextended.com/2009/03/ 06/расширенная выборка строк - person Quassnoi; 18.05.2010
comment
спасибо за ссылку .. не будет ли это слишком тяжело? Поскольку я использую это для пользовательского веб-сайта социальной сети - person Atif; 18.05.2010
comment
Я имею в виду его для веб-сайта социальной сети, и я на общем сервере. Так будет ли это использовать много процессора? - person Atif; 18.05.2010
comment
@atif: при правильной индексации это было бы очень эффективно. - person Quassnoi; 18.05.2010
comment
@Quassoni Это самый простой для понимания среди других ответов на другие сообщения на один и тот же вопрос, заданный несколько раз за последние несколько лет. - person Sunny; 27.12.2015