我只是遇到了一些 SQL 问题。我认为我不能很好地表达这个问题——所以让我展示给你看。
我有两张桌子,一张叫人,一张叫预约。我试图返回一个人的约会次数(包括如果他们没有约会次数)。约会包含 person_id
,每个约会有一个 person_id
。因此,COUNT(person_id)
是一种明智的方法。
问题是:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
将正确返回 person _ id 具有的约会数。但是,有0个约会的人不会被返回(很明显,因为他们不在那个表中)。
通过调整从 person 表中获取 person _ id 的语句,我得到了如下结果:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
然而,这仍然只会返回一个已经预约的 person _ id,而不是我想要的返回一个已经预约了0的人!
有什么建议吗?