2013-02-19 2 views
0

мне нужно напечатать резюме из двух таблиц с следующим форматом:Codeigniter: Резюме из двух таблиц

Product | Grand Total 
--------+--------- 
Book | 8000 
Pen | 5000 
Ruler | 0 

table_product

id | name 
-----+--------- 
1 | Book 
2 | Pen 
3 | Ruler 

table_transaction

id | cashier | product | total 
-----+---------+---------+--------- 
1 | john | 1 | 5000 
2 | doe  | 1 | 3000 
3 | john | 2 | 2000 
4 | other | 2 | 3000 

Может ли это делать с помощью o nly 1 запрос?

редактировать: Раньше я использовал этот запрос на table_transaction:

$this->db->select('product'); 
$this->db->select('total'); 
$this->db->from('table_transaction'); 
$this->db->select_sum('total', 'grand_total'); 
$this->db->group_by('product'); 
$query = $this->db->get(); 

Но это не показывает продукты, которые не в таблице еще. Я хочу распечатать все продукты, даже пока никаких транзакций.

+0

Довольно простое соединение. Просмотрите документы mysql для объединения таблиц. – shapeshifter

+0

http://www.sitepoint.com/understanding-sql-joins-mysql-database/ – shapeshifter

ответ

0

Попробуйте это:

$this->db->select('t1.name, sum(t2.total) as grand_total'); 
$this->db->from('table_product t1'); 
$this->db->join('table_transaction t2', 't2.product = t1.id', 'left'); 
$this->db->group_by('t1.name'); 
$query = $this->db->get(); 

Демо-версия sql скрипта находится здесь: http://sqlfiddle.com/#!2/04164/2

+0

Это именно то, что я ищу! И большое спасибо за запись в активном формате записи. – otezz

0

Вы должны использовать полный присоединиться, чтобы получить сводку двух таблиц, даже если нет никакой связи для третьего продукта в таблице транзакций ....

select product.name,transaction.total from product left join transaction on product.p_id = transaction.p_id 
+0

Привет, ваш запрос показывает только книгу продуктов и ручку. Правитель не показывает. В моем проекте есть фактически 12 элементов на table_product. И я хочу показать им все, даже общее 0. – otezz

+0

Я обновляю его извините ...... –

+0

эй попробуйте этот обновленный запрос ..... –

Смежные вопросы