Как считать нулевое значение равным 0 при использовании объединений в базе данных Mysql?

#mysql #database #join #count #null

#mysql #База данных #Присоединиться #подсчет #null

Вопрос:

У меня есть 2 таблицы следующим образом

Человек

 id name
1  John
2  mark 
  

Компьютер

 id human_id
1  2
2  null
  

Я хочу, чтобы мой ответ был следующим

 name no_of_computer
John 0
mark 1
  

Я пробовал следующее, но ошибаюсь

 select h.name,c.human_id) as 'no_of_computer' from human h
join 
computer c on c.human_id = h.id 
group by h.id
  

мой код не считает нуль как 0, поэтому он просто избегает этого и показывает только, что у марка 1 компьютер, но я хочу видеть, что у Джона тоже 0 компьютер. пожалуйста, помогите мне, заранее спасибо

Комментарии:

1. попробуйте LEFT присоединиться

2. Ваш опубликованный код синтаксически некорректен, пожалуйста, исправьте. И где p.id откуда взялось?

Ответ №1:

Вы можете использовать подзапрос, который выглядит примерно так:

 SELECT  
h.Name,
(SELECT COUNT(c.id_of_computers) 
FROM computers c
WHERE c.id_human = h.id) as no_of_computer
FROM humans h
  

Не вырезайте и не вставляйте это для проверки, поскольку я не обратил внимания на фактические имена идентификаторов в ваших таблицах. Вам придется взглянуть на это. 👍