我在數據庫中有四個表格,即Packages,Fixtures,Deals和Fixtures Deals。如何在Laravel 5的嵌套查詢中使用GroupBy?
下面是表的結構細節:
Packages: id, title
Fixtures: id, package_id, name
Deals: id, discound, description
Fixtures_Deal: id, fixture_id, deal_id, price
我需要與最低成交均價,提供在每個燈具的每個軟件包相處的軟件包列表。
這裏是我在phpMyAdmin或SQLYog中運行的mysql查詢,它工作正常,但在Laravel中,它給了我「p.title'不在GROUP BY」錯誤。
SELECT
p.title AS package_title,
tbl_min_value.min_price AS min_price
FROM
(SELECT
fixture_id,
MIN(deal_price) AS min_price
FROM
fixture_deal
GROUP BY fixture_id) AS tbl_min_value
JOIN fixtures AS f
ON f.id = tbl_min_value.fixture_id
RIGHT JOIN packages AS p
ON f.package_id = p.id
GROUP BY p.id
順便說一句,我想通過在模型中使用下面的方法來實現它:
return DB::statement('SELECT
p.title AS package_title,
tbl_min_value.min_price AS min_price
FROM
(SELECT
fixture_id,
MIN(deal_price) AS min_price
FROM
fixture_deal
GROUP BY fixture_id) AS tbl_min_value
JOIN fixtures AS f
ON f.id = tbl_min_value.fixture_id
RIGHT JOIN packages AS p
ON f.package_id = p.id
GROUP BY p.id');
您是否試圖以另一種方式執行它,如'$ pdo = DB :: connection() - > getPdo();'並直接啓動它 – Mruf
不,我沒有嘗試過。你能否詳細說明我該怎麼做?我要寫這樣的代碼嗎?: DB :: connection() - > getPdo('Query'); –
https://codeshare.io/29QA72 – Mruf