Возьмите один для каждого идентификатора - PullRequest
0 голосов
/ 03 августа 2011

У меня есть это на данный момент:

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 от dID 1 и 10 от dID 2, он должен вывести одно событие из каждого места, так что всего будет 2 события. И эти два события являются самыми последними (unix_timestamp (now ())> de.date)

1 Ответ

2 голосов
/ 03 августа 2011

Если у вас нет двух событий для одного и того же идентификатора на одну и ту же дату:

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;
...