Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database - Fatal编程技术网

Mysql 限制结果而不是组结果

Mysql 限制结果而不是组结果,mysql,database,Mysql,Database,我正在努力寻找正确的答案环顾互联网寻找如何做到这一点,我有一个加入和一个小组。当我在末尾添加限制时,它限制了组,而不是实际结果 SELECT COUNT(*) AS `numrows`, `people`.`age` FROM (`events`) JOIN `people` ON `events`.`id` = `people`.`id` WHERE `people`.`priority` = '1' GROUP BY `people`.`age` ORDER BY `numrows

我正在努力寻找正确的答案环顾互联网寻找如何做到这一点,我有一个加入和一个小组。当我在末尾添加限制时,它限制了组,而不是实际结果

SELECT COUNT(*) AS `numrows`, `people`.`age` 
FROM (`events`) 
JOIN `people` 
ON `events`.`id` = `people`.`id`
WHERE `people`.`priority` = '1' 
GROUP BY `people`.`age` 
ORDER BY `numrows` 
LIMIT 150
限制总是变化的,所以这需要是动态的,其思想是从两个表中漏掉前150行或x行,而不是限制组

EDIT=我想我已经解释得很糟糕了,我实际上想从150行或x开始,限制是我知道的动态执行此操作的唯一方法。所以我们的想法是,如果上一次搜索检索了150行,那么下次有250个结果,但是我想忽略上一次找到的前150个,等等。。希望这更有意义

在连接中的WHERE之后需要有限制或start from,我认为这是唯一可行的地方

编辑SQL=

SELECT COUNT( * ) AS `numrows`, `people`.`age`
FROM (
SELECT `id`, `events`.`pid`
FROM `events`
ORDER BY `id`
LIMIT 1050
)limited
JOIN `people` ON `people`.`age` = limited.id
WHERE `people`.`priority` = '1'
GROUP BY `people`.`age`
ORDER BY `numrows` DESC

谢谢你的帮助

我想你是说这样的事吧

SELECT COUNT(*) AS numrows, people.age
FROM (
SELECT id FROM events ORDER BY id LIMIT 150
) limited
JOIN people ON people.id = limited.id
GROUP BY people.age
ORDER BY numrows;

我是用时间戳上的where-between来做的,这似乎是唯一明智的方法。

我不太明白你的问题,你想做什么?SQL的格式很好,可以检索150行输出集。好吧,这几乎奏效了,但因为我解释得很糟糕,它没有达到我想要的效果,它确实限制了events表,但是它忽略了结果,因为我忽略了一个where子句,请看上面