programing

라 라벨의 유창한 쿼리 빌더로 카운트를 선택하는 방법은 무엇입니까?

goodcopy 2021. 1. 17. 11:55
반응형

라 라벨의 유창한 쿼리 빌더로 카운트를 선택하는 방법은 무엇입니까?


다음은 유창한 쿼리 작성기를 사용하는 내 쿼리입니다.

    $query = DB::table('category_issue')
        ->select('issues.*')
        ->where('category_id', '=', 1)
        ->join('issues', 'category_issue.issue_id', '=', 'issues.id')
        ->left_join('issue_subscriptions', 'issues.id', '=', 'issue_subscriptions.issue_id')
        ->group_by('issues.id')
        ->order_by(DB::raw('COUNT(issue_subscriptions.issue_id)'), 'desc')
        ->get();

보시다시피 조인 된 테이블의 개수로 주문하고 있습니다. 이것은 잘 작동합니다. 그러나이 개수가 내 선택과 함께 반환되기를 원합니다.

다음은 잘 작동하는 내 원시 속편 쿼리입니다.

Select issues.*, COUNT(issue_subscriptions.issue_id) AS followers 
FROM category_issue JOIN Issues ON category_issue.issue_id = issues.id 
LEFT JOIN issue_subscriptions ON issues.id = issue_subscriptions.issue_id
WHERE category_issue.category_id = 1
GROUP BY issues.id
ORDER BY followers DESC

Laravel의 유창한 쿼리 빌더를 사용하여이 선택을 어떻게해야합니까? 원시 SQL 쿼리를 사용할 수 있다는 것을 알고 있지만 가능하면 피하고 싶습니다. 도움을 주시면 미리 감사드립니다!


select ()에서 배열을 사용하여 더 많은 열을 정의 할 수 있으며 DB :: raw ()를 사용하여 팔로워에게 별칭을 지정할 수 있습니다. 다음과 같이 표시되어야합니다.

$query = DB::table('category_issue')
    ->select(array('issues.*', DB::raw('COUNT(issue_subscriptions.issue_id) as followers')))
    ->where('category_id', '=', 1)
    ->join('issues', 'category_issue.issue_id', '=', 'issues.id')
    ->left_join('issue_subscriptions', 'issues.id', '=', 'issue_subscriptions.issue_id')
    ->group_by('issues.id')
    ->order_by('followers', 'desc')
    ->get();

$count = DB::table('category_issue')->count();

항목 수를 알려줍니다.

더 자세한 정보 아름다운 Laravel 문서의 Fluent Query Builder 섹션을 확인하십시오 .

참조 URL : https://stackoverflow.com/questions/13223512/how-to-select-count-with-laravels-fluent-query-builder

반응형