2012-06-23 6 views
0

У меня есть 3 таблицыSQL объединения трех таблиц и выбора информации

  • Врач - Staff_ID, имя, должность.
  • Consists_Of - Staff_Id, Team_Code.
  • Team - Team_Code, Telephone_No, Staff_ID

В таблице команда состоит из лидера команды для каждой команды, которая также является врачом,

Мне нужно возвращать таблицу, которая имеет team_code, staff_Id, имя позиция

Я получил

SELECT DISTINCT Team.team_code, Doctor.staff_ID, name, position 
FROM Doctor, Team LEFT OUTER JOIN consists_of 
ON Team.Team_code = consists_of.Team_code 

Но это дает каждый каждому члену оставаться код команды, t1 и t2 затем, а затем t3 d так далее.

Любые идеи?

+0

Я думаю, вам нужно сделать соединение между врачом и командой, используя staff_id. Вы пытаетесь вернуть всех лидеров команды? –

+0

Я не понимаю, для чего предназначена таблица Consists_Of. –

+0

Состоит из списка идентификатора персонала и кода команды, с которым они связаны. Команда таблицы содержит командный код, номер телефона и лидеры команды staff_id – user445714

ответ

0

Что вам нужно, используйте JOIN. Повторение произошло потому, что вы не указали на то, что поле должно доктор и команда присоединится

SELECT Team.team_code, Doctor.staff_ID, name, position 
FROM Doctor 
LEFT OUTER JOIN consists_of 
    ON Doctor.Staff_Id=consists_of.Staff_Id 
LEFT OUTER JOIN Team 
    ON Team.Team_code = consists_of.Team_code 

Но почему у вас Staff_Id в таблице команды?

+0

'Team.Staff_ID', вероятно, является ссылкой на лидера команды. –

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