Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > [MySQL]не выводятся 0 для тем без комментариев


Автор: dstorm81 4.6.2008, 13:58
есть запрос
SELECT gb.name, COUNT(*) from gb, message WHERE gb.gb_id=message.gb_keyout GROUP BY gb.name

mysql

выводящий название темы и количество комментариев к нему
одно есть НО
он выводит только те темы у которых есть комментарии
1-5
4-6

нужно же вывести все темы, а у тех тем которых нет комментариев нужно вывести 0
1-5
2-0
3-0
4-6
5-0

как сделать сиё таинство

Автор: skyboy 4.6.2008, 14:10
от неявного inner join перейти к left join

Автор: TaNK 4.6.2008, 14:14
Цитата(dstorm81 @ 4.6.2008,  13:58)
есть запрос
SELECT gb.name, COUNT(*) from gb, message WHERE gb.gb_id=message.gb_keyout GROUP BY gb.name

mysql

выводящий название темы и количество комментариев к нему
одно есть НО
он выводит только те темы у которых есть комментарии
1-5
4-6

нужно же вывести все темы, а у тех тем которых нет комментариев нужно вывести 0
1-5
2-0
3-0
4-6
5-0

как сделать сиё таинство

поробуй так
Код

SELECT gb.name, COUNT(*) from gb, message WHERE gb.gb_id*=message.gb_keyout GROUP BY gb.name


Автор: dstorm81 4.6.2008, 14:36
skyboy
поподробнее пжлста ...
пример помог бы отцу русской демократии

TaNK попробую, если заработает будет благодарность smile

Автор: skyboy 4.6.2008, 14:39
TaNK, для какой СУБД конструкция "*=" должна работать?

Добавлено через 53 секунды
Код

SELECT gb.name, COUNT(message.gb_keyout) 
from gb 
left join message 
on gb.gb_id=message.gb_keyout 
GROUP BY gb.name

Автор: TaNK 4.6.2008, 14:47
> skyboy 
mssql

Добавлено через 58 секунд
извеняюсь.... плохо рассмотрел....что надо для mysql

Автор: skyboy 4.6.2008, 15:49
Цитата(TaNK @  4.6.2008,  13:47 Найти цитируемый пост)
извеняюсь.... плохо рассмотрел....что надо для mysql

у автора, вроде, и не было указано. В заголовке я добавил. Так что пущай ТС пеняет на себя smile

Автор: Deniz 5.6.2008, 05:16
Код

SELECT gb.name, COUNT(*) from gb left join message on gb.gb_id=message.gb_keyout GROUP BY gb.name

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)