gpt4 book ai didi

mysql - 具有不同列的 SQL 联合

转载 作者:行者123 更新时间:2023-11-29 05:03:49 26 4
gpt4 key购买 nike

您好,我不确定提出这个问题的最佳方式,但我已经成功运行了两个 SQL 查询,它们分别检索了我正在搜索的结果。但是,我想基本上将两个结果附加/连接在一起,但由于我对 SQL 还很陌生,所以我不确定要使用哪种方法。我试过 Union 但这不起作用,因为两个表都需要相同数量的列。还尝试了 left join 但这给了我一个一般的语法错误(可能代表我,我又是新手)。

第一个查询

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 Workbench。山姆。

最佳答案

您的第二次尝试是正确的,但缺少连接条件,而且您应该按 healthpractioners#healthPracID 分组。

SELECT
p.healthPracID,
p.firstName,
p.surname,
COUNT(t.healthPracID) AS num_patients
FROM healthpractioners p
LEFT JOIN treatmentrecords t
ON p.healthPracID = t.healthPracID
GROUP BY
p.healthPracID;

此答案假定 healthPracIDhealthpractioners 中的主键或者它具有唯一索引。在这种情况下,我们可以按 healthPracID 分组。如果没有,那么我们将不得不使用以下 GROUP BY:

GROUP BY
p.healthPracID,
p.firstName,
p.surname

关于mysql - 具有不同列的 SQL 联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52547895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com