Użyj COALESCE() funkcjonować. COALESCE() przyjmuje co najmniej 2 argumenty, obliczone w kolejności, i zwraca pierwszy niepusty argument. Więc COALESCE(null, 0) zwróci 0 i COALESCE(null, null, null, null, 1) zwróci 1 . Oto dokumentacja MySQL
o COALESCE() .
Czytając ponownie zapytanie, powinieneś być w stanie uzyskać żądane wyniki w ten sposób:
SELECT <all the fields you want>, b.songsID, COUNT(*) AS projects_count
FROM $sTable b
LEFT OUTER JOIN $sTable2 bb ON bb.songs_id = b.songsID
$sWhere
GROUP BY b.songsID
$sOrder
$sLimit
Tak jak powiedziałem, to powinno działać, ale coś w tym jest nie tak.