Я использую этот запрос, чтобы вернуть список песен, хранящихся в $sTable, вместе с COUNT всех их проектов, которые хранятся в $sTable2.
/*
* SQL queries
* Get data to display
*/
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable b
LEFT JOIN (
SELECT COUNT(*) AS projects_count, a.songs_id
FROM $sTable2 a
GROUP BY a.songs_id
) bb ON bb.songs_id = b.songsID
$sWhere
$sOrder
$sLimit
";
$rResult = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
'projects_count' помещается в массив вместе со столбцами в '$sTable', затем это выплевывается через JSON и отображается в таблице на странице.
Это отлично работает, за исключением случаев, когда к песне не привязаны проекты. Это, конечно, возвращает NULL.
Все, что я хочу, это чтобы любые нулевые значения возвращались как «0».
Я пробовал COUNT(), COUNT(IFNULL (project_id,0) и использовал COUNT(DISTINCT)...
А также:-
SELECT COALESCE(COUNT(*),0) AS projects_count, a.songs_id
Все безуспешно.
Любые идеи?