Чтобы исключить записи, для которых сумма
colichestvobook.total равна нулю, необходимо добавить условие HAVING после оператора GROUP BY. Условие HAVING позволяет фильтровать группы на основе агрегированных значений.
Измененный запрос будет выглядеть следующим образом:
SELECT books.id, books.name, zhanr.name as `zhanr_name`, authors.FIO as `authors_name`,
izdatel.Name as `izdatel_name`, books.priceroz, books.datePublish, SUM(colichestvobook.total) AS col
FROM kurs.books, kurs.zhanr, kurs.authors, kurs.izdatel, kurs.colichestvobook
WHERE books.zhanrid = zhanr.id AND books.authorid = authors.id AND books.idIzdatel = izdatel.id
AND colichestvobook.total != 0 AND books.id = colichestvobook.id_book
GROUP BY books.id
HAVING col != 0;
Здесь мы добавляем фразу HAVING col != 0 после оператора GROUP BY, чтобы выбирать только те записи, у которых сумма colichestvobook.total не равна нулю.
SELECT books.id , books.name , zhanr.name as `zhanr_name`, authors.FIO as `authors_name`,
izdatel.Name as `izdatel_name`, books.priceroz, books.datePublish, SUM( colichestvobook.total ) AS col
FROM kurs.books, kurs.zhanr, kurs.authors, kurs.izdatel, kurs.colichestvobook
where books.zhanrid = zhanr.id and books.authorid = authors.id and books.idIzdatel = izdatel.id
and colichestvobook.total != 0 and books.id = colichestvobook.id _book GROUP BY books.id ;