My MySQL db имеет таблицу (cfg) с 4 полями: id, name, data и location
Эта таблица предназначена для обслуживания нескольких поддоменов (местоположение). Мне нужно получить список самых новых строк для каждого имени для данного субдомена (местоположение).
Пример данных
id name data location
---------------------------
1 color red dc
2 color blue dc
3 size large sj
4 color green sj
5 size small dc
Следующий запрос работает нормально, но он кажется слишком сложным и медленным. У кого-нибудь есть предложение?
SELECT c1.name, c1.data
FROM (SELECT * FROM cfg WHERE location = "dc") as c1
LEFT JOIN (SELECT * FROM cfg WHERE location = "dc") as c2 ON ( c1.name = c2.name
AND c1.id < c2.id )
WHERE c2.id IS NULL
Вернется
name data
--------------
color blue
size small