2014-09-20 3 views
0

Я использую следующий запрос с подзапросами, написанными на PHP.Запрос Mysql возвращает null, если один подзапрос равен нулю

$query = mysqli_query($mysqli, "select 
     users.id as id, 
     users.display_name as display_name, 
     users.user_code as user_code, 
     (select count(articles.id) from articles where articles.user_code = '$user_code') as user_article_count, 
     (select count(comments.id) from comments where comments.user_code = '$user_code') as user_comment_count 
     from users"); 

Моя проблема возникает, когда один из подзапроса не соответствуют ни одной строки, то весь запрос возвращает нуль вместо возвращения нуля только для user_article_count или user_comment_count.

Как этого избежать?

ответ

0

MS SQL имеет ту же проблему, и я оборачиваю ее с помощью функции ISNULL(). Вы пробовали функцию IFNULL() в MYSQL?

Я нашел этот фрагмент в http://www.w3schools.com/sql/sql_isnull.asp.

В MySQL вы можете использовать функцию IFNULL(), например:

ВЫБРАТЬ ProductName, UnitPrice * (UnitsInStock + IFNULL (UnitsOnOrder, 0)) из продуктов

НТН, Джо