Mysql 为每个id抓取一个

Mysql 为每个id抓取一个,mysql,sql,greatest-n-per-group,Mysql,Sql,Greatest N Per Group,我现在有一个问题: SELECT de.id, d.name, de.title discos_events de INNER JOIN places d ON (de.dID = d.id) WHERE unix_timestamp(now()) > de.date LIMIT 10 这向我展示了最近的10个事件 因此,无论10个事件是否来自同一个地方(dID),它仍然显示10 现在,我希望它显示每个地方1个最新事件 因此,如果有20个事件10来自DID1,10来自DID2,它应该从每

我现在有一个问题:

SELECT de.id, d.name, de.title discos_events de
INNER JOIN places d ON (de.dID = d.id)
WHERE unix_timestamp(now()) > de.date
LIMIT 10
这向我展示了最近的10个事件

因此,无论10个事件是否来自同一个地方(dID),它仍然显示10

现在,我希望它显示每个地方1个最新事件


因此,如果有20个事件10来自DID1,10来自DID2,它应该从每个地方输出一个事件,因此总共是2个事件。这两个事件是最新的事件(unix_timestamp(now())>de.date)

假设在同一日期没有相同id的两个事件:

SELECT de.id, d.name, de.title 
FROM discos_events de INNER JOIN places d ON (de.dID = d.id) 
WHERE de.date = (SELECT MAX(t.date)
                 FROM disco_events t
                 WHERE t.dID = de.dID
                       AND unix_timestamp(now()) > t.date)
LIMIT 10;

它显示了过去发生的10个随机事件,而不是最近的10个。@cularis latest也在过去?你最晚会怎么做?与过去的方法相同?在限制结果之前,您需要按de.date DESC订购。这
放错了位置。你能再试一次吗?