嗨,我不确定问这个问题的最佳方式,但我已经成功运行了两个sql查询,分别检索我正在搜索的结果。不过,我想将这两个结果基本上附加/连接在一起,但由于我对sql还相当陌生,所以我不确定要使用什么方法。我尝试过联合,但这不起作用,因为两个表需要相同数量的列。也尝试了左连接,但这给了我一个普遍的语法错误(可能是代表我,再次我是新手)。
第一个查询
SELECT prac.healthPracID, prac.firstName, prac.surname
FROM healthpractitioners as prac
第二个查询
select count(treatmentrecords.nickname) as patients
from treatmentrecords
group by treatmentrecords.healthpracID;
或者,有人可以帮我重写这些语句,以便在一个查询中获得相同的结果。我以前尝试过类似的方法,并做了以下操作(但没有产生正确的输出-似乎有相同数量的患者,所有的名字和姓氏只是健康医生表中的第一个,但重复):
SELECT prac.healthPracID, prac.firstName, prac.surname,
count(treatmentrecords.nickname) as patients
FROM healthpractitioners as prac, treatmentrecords
group by treatmentrecords.healthpracID;
提前感谢,抱歉如果这已经被张贴之前,我很困惑这个,不知道如何最好地搜索它。
ps我在windows上运行mysql工作台,如果这有什么区别的话。山姆。
2条答案
按热度按时间ztmd8pv51#
您的第二次尝试是在正确的轨道上,但是它缺少一个连接条件,而且您应该按照
healthpractioners#healthPracID
.这个答案假设
healthPracID
是中的主键healthpractioners
或者它有一个唯一的索引。那样的话,我们就可以分组了healthPracID
. 如果没有,那么我们将不得不使用以下GROUP BY
:8ftvxx2r2#
请尝试以下操作:
使用两个表中的公共字段执行
LEFT JOIN
然后使用聚合函数COUNT
对于所需列和其他列,请在中指定GROUP BY