Mysql子查询限制或使用多个查询

Mysql子查询限制或使用多个查询,mysql,Mysql,每个状态只能选择2个问题吗。我知道mysql不支持子查询的限制,但我看到过一些变通方法,我不知道如何用于此查询。这是一个单查询问题还是我必须使用额外的查询?我试图为每个状态选择两行 如果没有限制2,下面的查询将工作,但是它有太多的结果,因此需要限制它 SELECT id FROM questions WHERE status_id = c.status_id LIMIT 2 查询: ... FROM questions q, users u, users lu, tags t, q

每个状态只能选择2个问题吗。我知道mysql不支持子查询的限制,但我看到过一些变通方法,我不知道如何用于此查询。这是一个单查询问题还是我必须使用额外的查询?我试图为每个状态选择两行

如果没有限制2,下面的查询将工作,但是它有太多的结果,因此需要限制它

SELECT id FROM questions WHERE status_id = c.status_id LIMIT 2
查询:

  ...
    FROM questions q, users u, users lu, tags t, question_tags tt, connection c
   WHERE q.user_id = u.id
     AND tt.tag_id = t.id
     AND tt.question_id = q.id
     AND c.user_id = 100
     AND q.last_user = lu.id
     AND q.id IN (SELECT id FROM questions WHERE status_id = c.status_id LIMIT 2)
GROUP BY q.id
ORDER BY q.date DESC

丑陋,我知道,但它应该会起作用。

你会得到1作为结果我知道,我的选择与问题无关你是否得到了预期的结果?如果你的选择代码不相关,为什么会发布在这里?你想干什么?每个状态2个问题是什么?顺便问一下:你意识到你根本不需要子查询吗?对于额外的where子句也可以这样做
...
    FROM questions q, users u, users lu, tags t, question_tags tt, connection c
   WHERE q.user_id = u.id
     AND tt.tag_id = t.id
     AND tt.question_id = q.id
     AND c.user_id = 100
     AND q.last_user = lu.id
     AND q.id IN (SELECT MAX(id) FROM questions WHERE status_id = c.status_id, 
                  SELECT MAX(id) FROM questions WHERE status_id = c.status_id AND id < 
                        (SELECT MAX(id) FROM questions WHERE status_id = c.status_id))
GROUP BY q.id
ORDER BY q.date DESC