У меня есть четыре таблицы в базе данных, то есть пакеты, светильники, предложения и светильники.Как использовать GroupBy во вложенном запросе в Laravel 5?
Вот детали структуры таблицы:
Packages: id, title
Fixtures: id, package_id, name
Deals: id, discound, description
Fixtures_Deal: id, fixture_id, deal_id, price
Мне нужно, чтобы получить список пакетов наряду с минимальной ценой сделки, которая предлагает в каждом приспособлении для каждого пакета.
Вот запрос mysql, который я запускаю в phpMyAdmin или SQLYog, и он отлично работает, но в 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