/ / Nested Join с Laravel 4.0 - sql, ларавел, ларавел-4

Вложена връзка с Laravel 4.0 - sql, ларавел, ларавел-4

Аз се борят да се изгради следната вложена сложна заявка с Laravel Query Builder. Аз съм с ларавел 4.0. Основният проблем с вложените връзки.

SELECT clubs.id, clubs.slug, clubs.name as `club_name`, clubs.state, clubs.category, clubs.live, `m`.`total_members`, `m`.`online_members`, `m`.`offline_members`, `m`.`last_7days_members` as `total_members_last_7days`

FROM clubs

LEFT JOIN
(
SELECT id, club_id, count(*) as `total_members`, SUM(online_member = 1) AS online_member

FROM members

LEFT JOIN

(
SELECT posts.id, posts.member_id, posts.title, posts.body
FROM posts
WHERE posts.transaction_id IS NOT NULL

) p on p.member_id = members.id
WHERE (`post_verfied` is null or `post_verfied` = 1)
AND `members`.`deleted_at` is null
group by club_id
) m on m.club_id = clubs.id

LEFT JOIN comments on comments.member_id = m.id

WHERE clubs.`deleted_at` is null
group by `clubs`.name

Моля помогнете..

Отговори:

1 за отговор № 1

Можете да го разгледате DB:raw както следва:

DB:table("table1")->leftJoin(DB::raw("(select *
from table2
join table3 on table3.id = table2.id) as mytable"),
function($join)
{
$join->on("table1.id", "=", "mytable.id");
});

Знам, че това не е точно това, което искате, но това е частично решение. Разследването, което открих, Laravel 4.x не подкрепя. Имаше дърпам за това преди година в Laravel 3.x, но в края на краищата не беше приложено. Винаги можете да видите всички опции, които можете да използвате с инструмента за създаване на заявки Builder.php.

Също така можете да използвате DB:statement когато не можете да изпълнявате сложна заявка с Query Builder или с красноречив ORM.