質問

下記のSQLクエリをLARAVERに "翻訳することはできません。

SELECT SUM(transactions.amount) AS total, products.name 
FROM transactions, product_stock, product_catalog, products
WHERE transactions.id_product_stock = product_stock.id_prodct_stock
AND product_stock.id_product_catalog = product_catalog.id_product_catalog
AND product_catalog.id_product = products.id_produto
GROUP BY (products.name);
.

私はこれを試してみました(戻りエラー):

Transaction::join('product_stock', 'transactions.id_product_stock', '=', 'product.stock.id_product_stock')
    ->join('product_catalog', 'product_stock.id_product_catalog', '=', 'product_catalog.id_product_catalog')
    ->join('products', 'product_catalog.id_product', '=', 'products.id_product')
    ->groupBy('products.name')
    ->get([ DB::raw('SUM(transactions.amount) AS total'), DB::raw('products.name as name')]);
.

とこれは(空を返します):

DB::raw('select SUM(transactions.amount) AS total, products.name 
from transactions, product_stock, product_catalog, products
where transactions.id_product_stock = product_stock.id_prodct_stock
and product_stock.id_product_catalog = product_catalog.id_product_catalog
and product_catalog.id_product = products.id_produto
group by (products.name)');
.

誰でも私を助けることができますか?

役に立ちましたか?

解決

RAWクエリを実行したい場合(そしてこのような複雑なクエリの場合は、RAW SQLに固定します。これでより快適なので)、あなたがする必要があるものはこれです。

$value = DB::select('select SUM(transactions.amount) AS total, products.name
    from transactions, product_stock, product_catalog, products
    where transactions.id_product_stock = product_stock.id_prodct_stock
    and product_stock.id_product_catalog = product_catalog.id_product_catalog
    and product_catalog.id_product = products.id_produto
    group by (products.name)'
);
.

DB::select()メソッドの使用のためのドキュメントです。

DB::raw()は、より大きなクエリ式の part をRAW SQLとしてマークするために使用されます。 http://larvel.com/docs/queries#jar-表現詳細と例。

他のヒント

クイックチェックドキュメントの確認RAW式として、クエリ全体を実行したいようです。

http://larvel.com/docs/queries## raw-expressions

hth

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top