Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: подсчет данных одной таблицы и вывод поля - другой
 
 автор: vadimka   (26.11.2010 в 16:38)   письмо автору
 
 

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)

  Ответить  
 
 автор: Trianon   (26.11.2010 в 16:41)   письмо автору
 
   для: vadimka   (26.11.2010 в 16:38)
 

c.name Вы вытаскивать права не имеете, так как в списке группировки этого поля нет.

Вообще ни одной строки не выводит?
Может в таблицах просто нет соответствующих строк?

  Ответить  
 
 автор: vadimka   (26.11.2010 в 17:24)   письмо автору
 
   для: Trianon   (26.11.2010 в 16:41)
 

я не ясно написал: выводит как раз c.name, не выводит num.
В таблице products есть записи, относящиеся к каждой таблице catalogs
точнее num - выводит 0

  Ответить  
 
 автор: Trianon   (26.11.2010 в 17:35)   письмо автору
 
   для: vadimka   (26.11.2010 в 17:24)
 

>я не ясно написал: выводит как раз c.name, не выводит num.
>точнее num - выводит 0
Вот после уточнения - ясно. А без - чушь. SQL не может вернуть половину строки.


>В таблице products есть записи, относящиеся к каждой таблице catalogs

Может в них id_product не задано?

Фрагмент дампа в студию.

  Ответить  
 
 автор: vadimka   (26.11.2010 в 17:42)   письмо автору
 
   для: 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 ;

  Ответить  
 
 автор: Trianon   (26.11.2010 в 18:42)   письмо автору
 
   для: vadimka   (26.11.2010 в 17:42)
 

а данные?
на моих запрос считает всё корректно
(если не ловить специально на неоднозначности name)

  Ответить  
 
 автор: vadimka   (29.11.2010 в 11:17)   письмо автору
 
   для: Trianon   (26.11.2010 в 18:42)
 

Ой! у меня глюк: номера в таблице каталог были неправильные, спасибо, что заставили присмотреться к дампу!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования