Я использую этот запрос, чтобы вернуть список песен, хранящихся в $ 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
Все безуспешно.
Есть идеи?