Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 15 Фев 2008 11:20:27 Заголовок сообщения: Запросец |
|
|
Что-то я не смог стандартными средствами решить, поэтому хочу спросить - как можно сделать подобный запрос средствами кейка
Есть
Album (hasMany) -> Photos (hasMany) -> Comments
Нужно узнать сколько комментариев к фотографиям, которые лежат в конкретном альбоме.
Вложенный запрос SQL для MySQL один я написал, работает как надо.
Но может есть способы "общего" решения?
Кратко вот запрос:
SELECT COUNT(*) FROM pcomments WHERE photo_id IN (SELECT id FROM photos WHERE album_id = ". $id.") |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 15 Фев 2008 18:08:43 Заголовок сообщения: |
|
|
Аналогично делал.. это легче.. чем искать что-то уже готовое для кэйка. Хотя я знаю что если ты ассоциируешь модели таким образом:
Album->Photos
Photos->Comments
согласно соглашениям Кэйка, и выставишь глубину запроса 2 или 3 то я думаю он тебе выдаст объект Albums со всеми фотками и комментариями в дереве..
Чую правда не знаю чем что должно получиться.. |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 15 Фев 2008 22:00:36 Заголовок сообщения: |
|
|
Выдать-то выдаст. Но считать потом комментарии - не очень удобно.
Точнее - лишние движения. Тут - один запрос. А там (если я правильно понял) - выйдет запрос, а потом подсчёты.
Значит я правильно сделал |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 16 Фев 2008 01:09:33 Заголовок сообщения: |
|
|
чё-то я сам не понял.. если сделать "глубинный" запрос через Кэйк в базу то выйдет дерево с твоими данными.. ну и юзай его Foreach скока влезет.. |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 16 Фев 2008 10:51:39 Заголовок сообщения: |
|
|
НУ я об этом и говорю
Через кейк - правильнее, но запрос +foreach
Прямой запрос - сразу ответ.
Вдвое меньше действий, скорость, соответственно выше...
Или я не прав? |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 16 Фев 2008 11:57:43 Заголовок сообщения: |
|
|
прав.. так в чём же трабла? |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 16 Фев 2008 20:33:20 Заголовок сообщения: |
|
|
думал, что есть кошерный метод решения средствами кейка.
Чтобы в случае смены MySQL на что-нить другое, не испытывать затруднений... |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 18 Фев 2008 20:09:02 Заголовок сообщения: |
|
|
$album->Photo->findCount(); |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 18 Фев 2008 20:16:52 Заголовок сообщения: |
|
|
KPOTOB писал(а): | $album->Photo->findCount(); |
А это зачем? Что считать собрались? |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 18 Фев 2008 22:49:07 Заголовок сообщения: |
|
|
DeeperMD
arghhh
$this->Album->Photo->Comment->findCount('Photo.album_id = '.$id); |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 19 Фев 2008 00:36:09 Заголовок сообщения: |
|
|
Great! |
|
Вернуться к началу |
|
|
|