【问题标题】:Add name from other table linked with primary ID key从与主 ID 键链接的其他表中添加名称
【发布时间】:2018-05-25 14:29:23
【问题描述】:

我有 3 个表,分别称为 Doctor、Appointment 和 Person。我需要将医生的姓名添加到以下结果中:

使用此代码:

SELECT doctor.doctor_id, COUNT(appointment.appt_time) AS No_APP 
FROM doctor
LEFT JOIN appointment 
ON appointment.doctor_id = doctor.doctor_id
GROUP BY doctor.doctor_id;

我可以对其进行哪些修改,以便我可以使用它的医生姓名,这是我的表格列表(名称在带有医生 ID 的人员表中):

【问题讨论】:

  • 下次样本数据给sqlfiddle.com
  • 是的,我们真的很难从图像中剪切和粘贴。
  • 实际上不能。您无法将您的医生与人员表联系起来。您唯一能做的就是修改 Doctor 表以包含您填充的 ​​person_id 列。对不起。
  • @MikeC。我敢打赌,医生 ID 和病人 ID 都是 person.person_id 的外键。
  • 你可能是对的!好主意。

标签: mysql sql


【解决方案1】:
SELECT
    doctor.doctor_id,
    person.last_name,
    COUNT(appointment.appt_time) AS No_APP 
FROM
    doctor
LEFT JOIN
    appointment  ON appointment.doctor_id = doctor.doctor_id
LEFT JOIN
    person  ON doctor.doctor_id = person.person_id
GROUP BY
    doctor.doctor_id,
    person.last_name;

或者你甚至可以跳过doctor 表:

SELECT
    person.person_id,
    person.last_name,
    COUNT(appointment.appt_time) AS No_APP 
FROM
    person
LEFT JOIN
    appointment ON appointment.doctor_id = person.person_id
GROUP BY
    person.person_id,
    person.last_name;

【讨论】:

  • 为什么要左连接?以防万一人员表中缺少医生?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多