|
|
|
|
SELECT c.name as n, COUNT(p.id_product) as num
FROM
catalogs as c
left JOIN
products as p
ON
c.id_catalog = p.id_catalog
GROUP BY c.id_catalog
|
Здравствуйте, что я делаю не так - не выводит ошибок, но не выводит количество(num) | |
|
|
|
|
|
|
|
для: vadimka
(26.11.2010 в 16:38)
| | c.name Вы вытаскивать права не имеете, так как в списке группировки этого поля нет.
Вообще ни одной строки не выводит?
Может в таблицах просто нет соответствующих строк? | |
|
|
|
|
|
|
|
для: Trianon
(26.11.2010 в 16:41)
| | я не ясно написал: выводит как раз c.name, не выводит num.
В таблице products есть записи, относящиеся к каждой таблице catalogs
точнее num - выводит 0 | |
|
|
|
|
|
|
|
для: vadimka
(26.11.2010 в 17:24)
| | >я не ясно написал: выводит как раз c.name, не выводит num.
>точнее num - выводит 0
Вот после уточнения - ясно. А без - чушь. SQL не может вернуть половину строки.
>В таблице products есть записи, относящиеся к каждой таблице catalogs
Может в них id_product не задано?
Фрагмент дампа в студию. | |
|
|
|
|
|
|
|
для: Trianon
(26.11.2010 в 17:35)
| |
CREATE TABLE `products` (
`id_product` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
`id_catalog` int(11) default NULL,
PRIMARY KEY (`id_product`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
CREATE TABLE `catalogs` (
`id_catalog` int(11) NOT NULL auto_increment,
`name` varchar(255) character set utf8 default NULL,
PRIMARY KEY (`id_catalog`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
|
| |
|
|
|
|
|
|
|
для: vadimka
(26.11.2010 в 17:42)
| | а данные?
на моих запрос считает всё корректно
(если не ловить специально на неоднозначности name) | |
|
|
|
|
|
|
|
для: Trianon
(26.11.2010 в 18:42)
| | Ой! у меня глюк: номера в таблице каталог были неправильные, спасибо, что заставили присмотреться к дампу! | |
|
|
|