Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Два внешиних ключа, ссылающихся на одну таблицу.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Два внешиних ключа, ссылающихся на одну таблицу.
Имя
Сообщение << Старые топики   Новые топики >>
Два внешиних ключа, ссылающихся на одну таблицу. - 2009-09-16 18:31:21.200000   
L.I.R

Сообщений: 10
Оценки: 0
Присоединился: 2008-07-26 21:21:23.476666
Спасибо что заглянули в тему и надеюсь на помощь.

Есть 2 таблицы: main - информация о пациенте и medics - информация о лечащих врачах.

Структуры:
+-------------------+ |MAIN | +-------------------+ |ID Integer |//Код пациента |FIO Varchar |//Фамилия |MEDIC1 Integer |//Код первого врача (FK - внешний ключ) |MEDIC2 Integer |//Код второго врача (FK - внешний ключ) +-------------------+ +-------------------------+ |MEDICS | +-------------------------+ |MEDIC_ID Integer |//Код врача (PK - первичный ключ) |MEDIC_FIO Varchar |//Фамилия врача +-------------------------+ Нужно произвести выборку из двух таблиц, чтобы в выводе были поля:
ID,FIO,MEDIC_FIO,MEDIC_FIO. (то есть фамилия и первого, и второго врача)

Для выборки только при одном враче использую запрос:
SELECT MAIN.ID, MAIN.FIO, MEDICS.MEDIC_FIO FROM MAIN LEFT JOIN MEDICS ON MAIN.MEDIC = MEDICS.MEDIC_ID Подскажите, правильно ли я организовал связи и какой нужно использовать запрос.
СУБД - InterBase6.5

Post #: 1
RE: Два внешиних ключа, ссылающихся на одну таблицу. - 2009-09-16 19:22:51   
L.I.R

Сообщений: 10
Оценки: 0
Присоединился: 2008-07-26 21:21:23.476666
Всем спасибо, решение было найдено. Нужно 2 раза джойнить таблицу с медиками с использованием разных алиасов:
SELECT MAIN.id, MAIN.FIO, med1.MEDIC_FIO, med2.MEDIC_FIO FROM MAIN LEFT JOIN MEDICS med1 ON MAIN.MEDIC = MEDICS.MEDIC_ID LEFT JOIN MEDICS med2 ON MAIN.MEDIC2 = MEDICS.MEDIC_ID
Post #: 2
Страниц:  [1]
Все форумы >> [Прочее] >> Два внешиних ключа, ссылающихся на одну таблицу.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.