contacts
id|date|type|clientId
Chciałbym pobrać maksymalnie 10 ostatnich kontaktów(sortując po dacie) ale maksymalnie po 1/clientId. Da się to zrobić w jednym zapytaniu?
@EDIT
okej, GROUP BY.
@EDIT2
Albo jeszcze mam problem.. Obecnie zapytanie wygląda tak:
Cytat
SELECT * FROM `contacts`
LEFT JOIN `clients` ON `clients`.clientId = `contacts`.contactClientId
WHERE `contactGroup` = 1 AND `contacts`.contactNextContactDate < 1332886249
GROUP BY `contactClientId`
ORDER BY `contacts`.contactNextContactDate ASC
LEFT JOIN `clients` ON `clients`.clientId = `contacts`.contactClientId
WHERE `contactGroup` = 1 AND `contacts`.contactNextContactDate < 1332886249
GROUP BY `contactClientId`
ORDER BY `contacts`.contactNextContactDate ASC
I owszem, pobiera po 1 rekordzie na jednego klienta i sortuje według daty, ale rekord ten nie jest pobierany jako ostatni dla klienta. To znaczy jeśli w tabeli jest 10 kontaktów dla 1 klienta zapytanie powinno pobrać ten z najwyższym ID a nie z najniższym. Ktoś pomoże?