У меня будет список всех элементов order_status
с общим количеством связанных заказов. Я пытался использовать внутреннее соединение и левое соединение, но никто из них не работал на меня.
select
order_status.order_status_id, order_status.name, sum(order.order_id)
where language_id = 1
http://sqlfiddle.com/#!9/7efcbe
Вот таблицы:
CREATE TABLE IF NOT EXISTS 'order' (
'order_id' int(11) NOT NULL AUTO_INCREMENT,
'store_id' int(11) NOT NULL DEFAULT '0',
'order_status_id' int(11) NOT NULL DEFAULT '0',
'language_id' int(11) NOT NULL,
PRIMARY KEY ('order_id')
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS 'order_status' (
'order_status_id' int(11) NOT NULL AUTO_INCREMENT,
'language_id' int(11) NOT NULL,
'name' varchar(32) NOT NULL,
PRIMARY KEY ('order_status_id','language_id')
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
Вот запрос, возможно, вы ищете эти данные -
select os.order_status_id,os.name,count(o.order_id)
from order_status as os
left outer join 'order' o on os.order_status_id = o.order_status_id
group by os.order_status_id,os.name
Вы можете попробовать это решение для своей проблемы:
select order_status.order_status_id,order_status.name,count(o.order_id) AS no_of_order
from order_status
left outer join 'order' o on order_status.order_status_id = o.order_status_id
group by order_status.order_status_id,order_status.name
вы также можете посетить http://sqlfiddle.com/#!9/7efcbe/22
пытаться:
select os.order_status_id, os.name, sum(o.order_id)
from 'order_status' os JOIN 'order' o on os.order_status_id=o.order_status_id
AND o.language_id = 1
GROUP BY o.order_status_id;