У меня есть две таблицы, с одной содержащим записи ссылок другим:Можно ли сконденсировать эти запросы в один?
Goal
id (int)
name (text)
value_mask (text)
GoalStatus
id (int)
goal (int)
created (datetime)
value (text)
Goal.id == GoalStatus.goal
То, что я хотел бы сделать, это вытащить последнюю запись из таблицы GoalStatus, для каждой записи в цели. На данный момент единственный способ я знаю, как сделать это, сделав отдельный запрос для каждой записи в Цели (псевдокода):
goals = db.query("SELECT * FROM Goal")
foreach (goals as goal):
goalStatus = db.query("
SELECT * FROM GoalStatus
WHERE goal = " + goal.id + "
ORDER BY created DESC
LIMIT 1
")
есть способ конденсации, поэтому я не делаю дополнительный запрос для каждой цели?
Я думаю, что вы хотите: http://stackoverflow.com/questions/1537606/mysql-group-by-with-top-n-number-of-each-kind –
и еще одна ссылка: go to mysql part http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/ –