SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.04.2011 15:00:45

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Не выводить строки из таб1 если SUM(столбец) из таб2 равен нулю

К сожалению  на форуме для начинающих, не смогли найти решения (зато разобрался во многих вопросах)

Есть две таблицы "Факторы" (fakt) и "Количество голосов за тот или иной фактор" (fakt_cnt)
fakt_cnt состоит из полей fakt_id и cnt. В cnt имеем единицы и нули. (надеюсь понятно обьяснил)
1. Выводим названия факторов.
2. Выводим количество голосов по каждому фактору и сортируем так, чтобы ничего не перемешалось. smile

Получаем что-то вроде:
Фактор_1  5 (голосов)
Фактор_2  3
Фактор_3  2
Фактор_4  1
Фактор_5  0

Цель: не выводить Фактор_5  0 как и все остальные возможные нулевые значения

Что у меня получилось за 2 дня в погоне за идеальным кодом smile
1. Количество голосов выводит корректно, без нулей

$result_fakt_cnt = mysql_query("SELECT
fakt_cnt.fakt_id,
SUM(fakt_cnt.cnt)
FROM fakt_cnt
LEFT JOIN fakt ON fakt_cnt.fakt_id = fakt.id
GROUP BY fakt_cnt.fakt_id
HAVING SUM(fakt_cnt.cnt) > 0
ORDER BY SUM(fakt_cnt.cnt) DESC"
, $db);
$fakt_cnt = mysql_fetch_array($result_fakt_cnt);

do{
printf("<div>%s</div>",$fakt_cnt["SUM(fakt_cnt.cnt)"]);
}
   while ($fakt_cnt = mysql_fetch_array($result_fakt_cnt));



А названия никак не хочет (Варианты я приводить не буду, мне кажется я уже всё перепробовал, но правильно сформировать запрос не получилось.)
Код, который выводит все значения:

$result_fakt = mysql_query("SELECT fakt.id, fakt.name FROM fakt
LEFT JOIN fakt_cnt ON fakt.id = fakt_cnt.fakt_id
GROUP BY fakt_cnt.fakt_id
ORDER BY SUM(fakt_cnt.cnt) DESC"
, $db);
$fakt = mysql_fetch_array($result_fakt);

do{
  printf("<div>%s</div>",$fakt["name"]);
}
while ($fakt = mysql_fetch_array($result_fakt));


P.S. Всё находиться в начальной стадии разработки, поэтому ешё возможны кординальные изменения. Если есть возможность как-то иначе организовать процесс, пожалуйста, посоветуйте.

С уважением
Андрей

Отредактированно Doxtor (15.04.2011 15:02:14)

Неактивен

 

#2 16.04.2011 01:15:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не выводить строки из таб1 если SUM(столбец) из таб2 равен нулю

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson