mySQL:问题使用LIMIT

时间:2013-04-04 00:27:04

标签: mysql sql

我正在尝试查询200个用户,但不知道确切的Subj_Id。因此,我不能只查询Subj_Ids的范围(虽然我知道我想从200开始),但需要设置Subj_Ids我查询范围的限制。我试过了:

SELECT *
    FROM session2
    WHERE Subj_Id > 200
    AND Subj_Id IN (
        SELECT Subj_Id
            FROM userdata
            WHERE `Primary Lang` != ''
            OR `Primary Lang` != '-'
            OR `Primary Lang` != '--'
    )
    LIMIT 200;

但是,它只返回少量Subj_Ids。这是我的语法问题,还是我正在使用的db?

1 个答案:

答案 0 :(得分:0)

在子查询中选择所需的用户,然后加入以获取会话。

您不清楚表格的格式。以下假设每个表都有一个user_id,而user_id / subj_id定义了一个会话:

select s.*
from (SELECT user_id, max(subj_id) as maxsi
      FROM session2
      WHERE Subj_Id > 200 AND
            Subj_Id IN (SELECT Subj_Id FROM userdata WHERE `Primary Lang` not in ('', '-', '--') )
      group by user_id
      LIMIT 200
    ) u join
    session2 s
    on u.user_id = s.user_id and s.subj_id = maxsi