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

Форум MySQL

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

 

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

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

тема: Запрос к двум таблицам и GROUP_BY
 
 автор: Temnovit   (24.01.2007 в 15:22)   письмо автору
 
 

Здравствуйте!

Помогите составить запрос - совсем замучался.

У меня есть две связанные таблицы (рисунок в приложении).
Одна - список категорий в доска объявлений,
вторая - список объявления со ссылкой на категорию.

Задача - вывести все данные о категории и колличество объявлений для данной категории.

Вот моя реализация.


               SELECT
                  ct.name_ru   as name_ru,
                  ct.name_lv   as name_lv,
                  ct.descr_ru  as descr_ru,
                  ct.descr_lv  as descr_lv,
                  ct.picture   as picture,
                  COUNT(adv.id) as adv_cnt
               FROM
                 board_categories as ct,
                 board_advertisments  as adv
               WHERE
                 ct.id = adv.cat_id
               GROUP BY
                  ct.name_ru


Все время выдает пустой результат.

В чем может быть моя ошибка, и как правильно составить запрос?

   
 
 автор: Trianon   (24.01.2007 в 15:38)   письмо автору
 
   для: Temnovit   (24.01.2007 в 15:22)
 

Так Вы получите лишь те категории, в которых есть хотя бы одно объявление.
Чтобы получить и пустые тоже, нужно применить левое(внешнее) соединение.
SELECT 
    ct.name_ru   as name_ru, 
    ct.name_lv   as name_lv, 
    ct.descr_ru  as descr_ru, 
    ct.descr_lv  as descr_lv, 
    ct.picture   as picture, 
    COUNT(adv.id) as adv_cnt 
  FROM board_categories as ct 
     LEFT JOIN  board_advertisments  as adv ON ct.id = adv.cat_id 
  GROUP BY ct.id

   
 
 автор: Temnovit   (24.01.2007 в 15:48)   письмо автору
 
   для: Trianon   (24.01.2007 в 15:38)
 

Большое спасибо, понял ошибку - все категории и правды были пустыми.
В Вашем способе мы просто "приделываем" к таблице нужное поле с колличеством объявлений.
Отличное решение, спасибо еще раз.

   
Rambler's Top100
вверх

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