Выберите COUNT в DB :: raw и 2 таблицы

У меня 2 таблицы:

категория:

idCat, nameCat, urlCat

подробный пост:

idDetailPost, nameDetailPost, viewDetailPost, idCat

Это означает, что в одной категории много сообщений. И моя проблема: мне нужна таблица на веб-сайте, в которой есть:

nameCat 
urlCat 
count(post in category)
count(viewDetailPost)

Выберите COUNT в DB :: raw и 2 таблицы

Это правильно в SQL. Я тестировал его в XAMPP:

SELECT
     c.nameCat AS nameCategory,
     c.urlCat AS urlCategory,
     COUNT(d.idCat) AS countPost,
     COUNT(d.viewDetailPost) AS viewPost FROM
     category c,
     detailpost d WHERE
     c.idCat = d.idCat GROUP BY
     d.idCat

Но я не знаю, как это написать в Laravel 5.4. Я пробовал DB :: raw, DB :: select, присоединяйтесь ... Помогите, пожалуйста! Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
480
2

Ответы 2

DB::table('detailpost as dp')
->leftJoin('category as c','c.id','=','dp.idCat')
->select( 'c.nameCat AS nameCategory', 'c.urlCat AS urlCategory',DB::raw('count(dp.idCat) as countPost),DB::raw('count(dp.viewDetailPost) as viewPost ))
->groupBy('dp.idCat')
->get();

Я копирую его и получаю ошибку: синтаксическая ошибка, неожиданный «AS» (T_AS), ожидание «,» или «)»

Việt Hải 10.03.2018 11:05

Большое спасибо! Это ответ!

$sql =  DB::table('detailpost')
            ->select(
                'category.nameCat AS name_category',
                'category.urlCat AS url_category' ,
                DB::raw('count(detailpost.idCat) as count_post'),
                DB::raw('count(detailpost.viewDetailPost) as view_post')
            )
            ->leftJoin('category','detailpost.idCat','category.idCat')
            ->groupBy('category.nameCat', 'category.urlCat')
            ->orderBy('detailpost.idCat', 'ASC')
            ->get();

blade.php

Таблица сайта

Другие вопросы по теме