0

我正在尝试查询 200 个用户,但不知道确切Subj_Id的 s。因此,我不能只查询一个范围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. 这是我的语法问题还是我正在使用的数据库?

4

1 回答 1

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
于 2013-04-04T00:34:04.103 回答