我正在努力寻找正确的答案,在互联网上寻找如何做到这一点,我有一个加入和一个团体。当我向末尾添加限制时,它会限制组而不是实际结果。
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之后开始,我认为这是它唯一可行的地方。
编辑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
感谢您的帮助
答案 0 :(得分:1)
我怀疑你的意思是这样的?
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;
答案 1 :(得分:0)
我使用时间戳之间的位置,这似乎是唯一合理的方法。