Как получить список предметов из одной таблицы и общее количество связанных с ними предметов из пыльника в mySql?

0

У меня будет список всех элементов 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;
Теги:
sqlfiddle

3 ответа

2
Лучший ответ

Вот запрос, возможно, вы ищете эти данные -

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
0

Вы можете попробовать это решение для своей проблемы:

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

0

пытаться:

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;
  • 0
    Не могли бы вы обновить свой ответ и объяснить, что вы делаете. Спасибо заранее

Ещё вопросы

Сообщество Overcoder
Наверх
Меню