2015-03-19 77 views
1

我有3张桌子,一个叫Doctor,Person,另一个叫Appointment。他们有共同的关系doctor_id,但只有人持有他们的Last_Name。MySQL连接表Q

我需要能够生成一个医生ID的列表,以及为每个有零个或多个约会的医生所做的约会数量以及医生姓名。

我该如何实施医生的名字?

下面是表

http://i.stack.imgur.com/Vx3x9.png

这是我迄今为止

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

您可以张贴百姓餐桌以及请 – Matt 2015-03-19 11:55:36

+0

您需要在表医生为person_id,比加入时(哟后第三个表,如果需要将更新)通过该ID做表。 – Crepi 2015-03-19 11:56:48

回答

1

只需添加一个左边加入新表:

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

谢谢你这个工作 – Fowlzy 2015-03-19 11:59:03

+0

高兴地帮助:)不要忘记接受答案! :) – Nightmaresux 2015-03-19 12:01:14

0

假设人表中包含一个链接,医生

SELECT d.doctor_id, p.last_name, COUNT(a.appt_time) AS No_APP 
FROM doctor d 
LEFT JOIN appointment a ON d.doctor_id = a.doctor_id 
LEFT JOIN person p ON d.doctor_id = p.doctor_id 
GROUP BY d.doctor_id; 
+0

谢谢你现在工作的帮助。 – Fowlzy 2015-03-19 12:08:37