2015-03-19 4 views
1

У меня есть 3 стола, один из которых называется Doctor, Person и one called Назначение. У них есть doctor_id в общих отношениях, но только человек держит их Last_Name.MySQL, соединяющий таблицы Q

Мне нужно уметь составить список идентификаторов врачей вместе с количеством назначений, назначенных для каждого врача с нолью или более назначением, а также имя врача.

Как бы я использовал имя врача?

Вот таблицы

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

+0

Вы должны бы person_id в таблице врача, и чем присоединиться делает таблицы по этому id. – Crepi

ответ

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

+0

рад помочь :) не забудьте принять ответ! :) – Nightmaresux

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

Смежные вопросы