Как получить список заказов на продажу (сделку) в Laravel? - PullRequest
0 голосов
/ 05 марта 2019

У меня есть две таблицы базы данных, 'product' и 'транзакции', как низкие

**Product.php**

product_id   product_name
--------------------------
1           |      A
2           |      B
3           |      C

**Transactions.php**

transaction_id       product_id
--------------------------------
1                |       1
2                |       1
3                |       1
4                |       3
5                |       2
6                |       3

Из таблицы транзакций.Таким образом, заказ на продажу (лучшая продажа) - [ACB].Я пробовал что-то вроде ниже, но не работает.

$saleTtransaction = SaleTransaction::select('product_id', DB::raw('count(*) as total'))->groupBy('product_id')->get();

Ценю за все комментарии, спасибо.

1 Ответ

0 голосов
/ 05 марта 2019

Вот необработанный запрос, который вы, вероятно, хотите использовать:

SELECT
    p.product_name,
    COUNT(t.product_id) AS total
FROM products p
LEFT JOIN transactions t
    ON p.product_id = t.product_id
GROUP BY
    p.product_name
ORDER BY
    total DESC;

Вот код Laravel для вышеприведенного:

$saleTtransaction = DB::table("products p")
    ->select("p.product_name",
             DB::raw('COUNT(t.product_id) AS total'))
    ->join("transactions t", "p.product_id", "=", "t.product_id")
    ->groupBy("p.product_name")
    ->orderBy('total', 'desc')
    ->get();

Это предполагает, что каждый продукт всегда имеет уникальныйназвание.Если нет, то технически мы должны агрегировать как по названию продукта, так и по идентификатору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...