(Я пытался опубликовать это в группе Google CFWheels (дважды), но по какой-то причине мое сообщение никогда не появляется. Этот список модерируется?)
Вот моя проблема: я работаю над приложением для социальных сетей в CF on Wheels, не слишком отличающимся от того, с которым мы все знакомы по замечательным урокам Криса Питерса. Однако в моем случае мне нужно отображать самое последнее сообщение о состоянии в пользовательском каталоге. У меня есть модель пользователя с hasMany("статусы") и модель состояния с containsTo("пользователь"). Итак, вот код, с которого я начал:
users = model("user").findAll(include="userprofile, statuses");
Это, конечно, возвращает одну запись для каждого сообщения о состоянии в таблице состояний. Массовый перебор. Итак, затем я пытаюсь:
users = model("user").findAll(include="userprofile, statuses", group="users.id");
Приближаемся, но теперь мы получаем первую запись статуса для каждого пользователя (самый низкий статус.id), когда я хочу выбрать самый последний статус. Я думаю, что в прямом SQL я бы использовал подзапрос, чтобы сначала изменить порядок статусов, но это недоступно для меня в Wheels ORM. Итак, есть ли другой чистый способ добиться этого, или мне придется перетаскивать огромный результат запроса или возражать против статусов в моем CFML, а затем отфильтровывать их, пока я зацикливаюсь?
WHERE
в подзапрос? 05.07.2012