Заказ ПОЛЕ в MYSQL

Я изо всех сил пытаюсь решить это. У меня есть такой стол.

    +-------------+-------+
    | type        | COUNT |
    +-------------+-------+
    | A           |     1 |
    | C           |     5 |
    | B           |     4 |
    +-------------+-------+

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

+-------------+-------+
| type        | COUNT |
+-------------+-------+
| A           |     1 |
| B           |     5 |
| C           |     9 |
| D           |     0 |
+-------------+-------+

QUERY:

select type , COUNT from TABLE order by FIELD(type,'A','B','C','D') ; 

Работает нормально если колонкаtype имеет значение дляА, В, С, D» , В некоторых случаях заказ поFIELD('A','B','C','D') некоторые столбцы могут не иметь значения в таблице. В этом случае я хочу поставить 0 и построить результат.

D нет в таблице. Так что поставьте «0» для этого .

ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ ВЫХОД

CREATE TABLE `Summary` (
  `TIMESTAMP` bigint(20) NOT NULL DEFAULT '0',
  `type` varchar(50) NOT NULL DEFAULT '',
  `COUNT` bigint(19) NOT NULL,
  PRIMARY KEY (`TIMESTAMP`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
 John Woo16 нояб. 2012 г., 12:59
Вы можете опубликовать схему своего стола? это стол сtype а такжеcount набор результатов или исходная таблица?
 Sathish16 нояб. 2012 г., 13:06
почему Дон't установить значение по умолчанию для столбца count как 0COUNT bigint (19) NOT NULL ПО УМОЛЧАНИЮ '0'
 kannanrbk16 нояб. 2012 г., 13:03
@JohnWoo Я опубликовал вывод своей таблицы создания таблиц.
 kannanrbk16 нояб. 2012 г., 13:08
@ Сатиш, это не сработает.

Ответы на вопрос(1)

Решение Вопроса

как это:

select a.col as type,coalesce (`COUNT`,0) as `count`
from 
(select 'A' as col union all
select 'B' as col union all
select 'C' as col union all
select 'D' as col )a
left join Table1 T
on a.col=T.type
order by FIELD(a.col,'A','B','C','D') ; 



Демонстрация SQL скрипки

Ваш ответ на вопрос