Два внешиних ключа, ссылающихся на одну таблицу.
Пользователи, просматривающие топик: 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
|
|
|
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
|
|
|
|
|