Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL:使用限制问题_Mysql_Sql - Fatal编程技术网

mySQL:使用限制问题

mySQL:使用限制问题,mysql,sql,Mysql,Sql,我试图查询200个用户,但不知道确切的sub\u Ids。因此,我不能只查询sub\u id的范围(虽然我知道我想从200开始),但需要对我正在查询的sub\u id的范围设置一个限制。我试过: SELECT * FROM session2 WHERE Subj_Id > 200 AND Subj_Id IN ( SELECT Subj_Id FROM userdata WHERE `Primary L

我试图查询200个用户,但不知道确切的
sub\u Id
s。因此,我不能只查询
sub\u id
的范围(虽然我知道我想从200开始),但需要对我正在查询的
sub\u id的范围设置一个限制。我试过:

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;

但是,它只返回少数
子ID
。这是我的语法问题还是我正在使用的数据库问题?

在子查询中选择所需的用户,然后重新连接以获取会话

您不清楚表格的格式。以下假设每个表都有一个
用户id
,并且
用户id
/
子用户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

如果不指定限制200,你会得到多少?我认为
其中subc_Id>200
似乎很奇怪。你真的只想要其中的一个吗
subc_Id
的值为201或更大?限制200并不意味着它将返回200,如果你所在的条件已经过滤掉了大多数用户,那么它应该返回少数用户。使用限制200,5查找是否有超过200的用户,或者尝试简单计数(*):-)子查询中的WHERE子句无效。如果语言是
'-'
,那么它就不是
'
。我认为你应该使用
,而不是
。对不起,用户和主题是一样的。我编辑了我的问题以反映这一点。然而,Userdata是另一个表,它由
sub\u Id
链接。你的答案仍然适用吗?