我在数据库中有四个表格,即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