ShadowsMind
Новичок
Всем привет.
Что-то никак не выходит построить запрос с выборкой из 2ух таблиц. Структура такая
Заказы: id | sum | date | time | status
Продукты: id | order_id | name | type | price | sale
Что нужно: получить список всех продуктов за определенный месяц(исходя из заказов за месяц), сгруппировать продукты по имени и получить их количество и общую сумму для каждого продукта.
С выборкой внутри продуктов разобрался, а вот как их взять для конкретной даты(которая содержится в Заказах-дата) никак понять не могу, как то у меня не очень дело с Join, with и т.д....
Примерно так я делаю запрос для Продуктов:
Буду очень благодарен за любую помощь/подсказку. С QB не дружу, но если кто подскажет как на нем написать подобное с радостью рассмотрю вариант.
Что-то никак не выходит построить запрос с выборкой из 2ух таблиц. Структура такая
Заказы: id | sum | date | time | status
PHP:
<?php defined('SYSPATH') or die('No direct script access');
class Model_Order extends ORM {
/*
* 1. Связь с таблицей Products:
* один Заказ может включать в себя много продуктов.
*/
protected $_has_many = array(
'product' => array(
'model' => 'Product',
'foreign_key' => 'order_id',
)
);
}
PHP:
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Product extends ORM {
/*
* 1. Связь с таблицей Orders:
* много продуктов в корзине могут относиться к одному заказу
*/
protected $_belongs_to = array(
'order' => array(
'model' => 'Order',
'foreign_key' => 'order_id',
)
);
}
С выборкой внутри продуктов разобрался, а вот как их взять для конкретной даты(которая содержится в Заказах-дата) никак понять не могу, как то у меня не очень дело с Join, with и т.д....
Примерно так я делаю запрос для Продуктов:
PHP:
public function get_products_info() {
$product= ORM::factory('Product');
$products_info = $product
->select(array(DB::expr('COUNT(`name`)'), 'number'))
->select(array(DB::expr('SUM(`price`)'), 'sum'))
->select(array(DB::expr('SUM(`sale`)'), 'sum_sale'))
->group_by('name')
->find_all();
//Для наглядности покажу как примерно вывожу
foreach($products_info as $dish) {
echo $dish->product . ": " . $dish->sum . "/" . $dish->sum_sale . "/" . $dish->number;
echo "</br>";
}
}
Последнее редактирование: