Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.02.2015 15:13:03

Сортировка по динамическому полю

Добрый день!

Подскажи куда посмотреть или посоветуйте как написать запрос, задача следующая:

Есть 2 таблицы
goods - карточка товара с общей информацией
--id
--title
--active

и egoods - единица товара, определенного размера, цвет и собственной ценой
--id
--good_id
--price

связь получается один ко многим у одной карточки товара есть множество единиц товара

Нужно вывести список товаров (goods), но отсортированный по наименьшей цене среди единиц товаров (egoods)

Не в сети

#2 04.02.2015 22:36:17

Re: Сортировка по динамическому полю

Привет, запрос такого вида выводит то что ты хочешь

SELECT DISTINCT e.good_id, g.* 
FROM egoods AS e
INNER JOIN goods AS g ON e.good_id = g.id
ORDER BY e.price
LIMIT 0 , 30

Не в сети

#3 05.02.2015 07:29:16

Re: Сортировка по динамическому полю

Спасибо, а как-то через методы ORM это можно сделать?

Не в сети

#4 05.02.2015 15:20:26

Re: Сортировка по динамическому полю

Кому интересно получилось так:

PHP
$goods DB::table('egoods')
            ->
leftJoin('goods''egoods.good_id''=''goods.id')
            ->
select('goods.id''goods.*')->addSelect(DB::raw('min(price) as price'))
            ->
orderBy('price''ASC')
            ->
groupBy('good_id')
            ->
where('goods.active''='1);

Не в сети

Подвал раздела