#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
Не вырезайте и не вставляйте это для проверки, поскольку я не обратил внимания на фактические имена идентификаторов в ваших таблицах. Вам придется взглянуть на это. 👍