CakePHP выбрать из подзапроса (SELECT foo из SELECT (...)) - PullRequest
1 голос
/ 18 ноября 2011

У меня есть запрос CakePHP, который использует подзапросы.Хотя я нашел документацию, в которой показано, как использовать подзапросы в Cake для условий, я не смог найти способ использовать подзапрос в качестве таблицы.

Другими словами, я пытаюсьвыразить что-то вроде этого:

SELECT `Status`.`name`,
COUNT(*) as total_count,
COUNT(NULLIF(over_one_year, 0)) as over,
COUNT(NULLIF(over_one_year, 1)) as under
FROM (
    SELECT ((YEAR('##some date##') - YEAR(COALESCE(start_date, '1900-01-01'))) -
    (RIGHT(DATE('##some date##'), 5) < RIGHT(COALESCE(start_date, '1900-01-01'), 5)) 
     >= 1) as over_one_year,
     status_id FROM `users` WHERE `user_id` IN (##some list of ids##)) as User

LEFT JOIN `statuses` AS `Status` ON (`User`.`status_id` = `Status`.`id`)

GROUP BY id;

в торте.

Есть ли надежда?

1 Ответ

1 голос
/ 21 ноября 2011

Я думаю, что это выходит за рамки возможностей ORM для CakePHP, или не стоит тратить время на то, чтобы выяснить, как оно может работать с ним. Вы даже можете использовать метод $ this-> Model-> query () (http://book.cakephp.org/view/1027/query) или, по крайней мере, это все еще php, просто напишите свои собственные классы или функции для выполнения специальных запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...