Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.10.2013 11:54:26

Помогите написать сложный запрос :)

всем привет!
подскажите, пожалуйста, как написать вот такой запрос:

SELECT ag.*,
                (select count(a.id) from articles a where a.group_id = ag.id and status='active') active,
                (select count(a.id) from articles a where a.group_id = ag.id and status='disable') disable,
                (select count(a.id) from articles a where a.group_id = ag.id and status='deleted') deleted
                FROM articles_groups ag where ag.programm_id = '00' AND ag.user_id = '00'

smile

Не в сети

#2 04.10.2013 13:09:34

Re: Помогите написать сложный запрос :)

Имееется в виду с помощью Fluent/Eloquent? Проще выполнить его в сыром виде. Ещё лучше — переписать в виде объединений, например так:

sqlSELECT  ag.*, COUNT(a.id), status
FROM    articles a
JOIN    articles_groups ag
ON      ag.programm_id = '00' AND ag.user_id = '00' AND
        a.group_id = ag.id
GROUP BY status

Я не проверял, запрос сложный — проверь и поправь сам, если нужно. Если подойдёт, то с помощью Eloquent это можно легко написать, см. докуметацию.

Не в сети

#3 04.10.2013 13:36:49

Re: Помогите написать сложный запрос :)

Имееется в виду с помощью Fluent/Eloquent? Проще выполнить его в сыром виде. Ещё лучше — переписать в виде объединений, например так:

sqlSELECT  ag.*, COUNT(a.id), status
FROM    articles a
JOIN    articles_groups ag
ON      ag.programm_id = '00' AND ag.user_id = '00' AND
        a.group_id = ag.id
GROUP BY status

Я не проверял, запрос сложный — проверь и поправь сам, если нужно. Если подойдёт, то с помощью Eloquent это можно легко написать, см. докуметацию.

спасибо, но этот запрос возвращает не то, что предыдущий. дело в том, что сейчас переделываю самописную библиотеку на laravel (не свою), вот тут встретил такой запрос… хотелось бы конечно тот сделать, что в вопросе ☺

Не в сети

#4 04.10.2013 13:59:27

Re: Помогите написать сложный запрос :)

Проще его выполнить через DB::query(), если нет возможности его переделать.

Не в сети

#5 04.10.2013 14:26:56

Re: Помогите написать сложный запрос :)

Proger_XP пишет:

Проще его выполнить через %%DB::query()%%, если нет возможности его переделать.

хм, почему то ругается на то, что такого метода нет. киньте ссылку, где про него почитать пожалуйста

Изменено kiselevmike (04.10.2013 14:31:59)

Не в сети

#6 04.10.2013 19:36:43

Re: Помогите написать сложный запрос :)

Для L4 метод другой. См. документацию, это быстрее и можно сделать самому.

Не в сети

#7 07.10.2013 11:03:06

Re: Помогите написать сложный запрос :)

Proger_XP пишет:

}%Для L4 метод другой. См. ((http://laravel.ru/docs/v4/queries#%D1%81%D1%8B%D1%80%D1%8B%D0%B5 документацию)), это быстрее и можно сделать самому.

спасибо большое за помощь! db::raw сделал свое дело smile

Не в сети

#8 13.02.2015 13:32:59

elena

Re: Помогите написать сложный запрос :)

kak napisat paruski clovo artile

#9 13.02.2015 13:41:42

Re: Помогите написать сложный запрос :)

  1. kak napisat paruski clovo artile

Статья, сообщение, обзор, материал, публикация, сочинение…

Не в сети

Подвал раздела