반응형
라 라벨의 유창한 쿼리 빌더로 카운트를 선택하는 방법은 무엇입니까?
다음은 유창한 쿼리 작성기를 사용하는 내 쿼리입니다.
$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
반응형
'programing' 카테고리의 다른 글
새 라인 / 캐리지 리턴을 element.textContent에 삽입하려면 어떻게해야합니까? (0) | 2021.01.17 |
---|---|
문자열의 문자가 숫자인지 문자인지 확인하는 방법 (0) | 2021.01.17 |
CLion은 실행 파일을 어디에 저장합니까? (0) | 2021.01.17 |
Django (비 모델) 양식 미리 채우기 (0) | 2021.01.17 |
항목을 가로로 배치하는 WPF ListBox (0) | 2021.01.17 |