2013-01-17 6 views
2

Я работаю в Oracle APEX.Я делаю отчет из следующих четырех таблиц Patient History Junction and Disease, но не смог его сделать.Создание отчета из четырех таблиц

Я хочу SELECT

Pat_Name, Pat_Age` из пациентов Таблица

.

Treated_By, Sys_Date из Таблицы истории

и

Dis_Name из таблицы Болезнь

.There является Junction Таблица между History and Disease. Ниже приведена диаграмма приведенного выше сценария.

enter image description here

ответ

1

Вы должны JOIN каждой из таблиц, похожее на это:

select p.pat_name, 
    p.pat_age, 
    h.treated_by, 
    h.sys_date, 
    d.dis_name 
from patient p 
inner join history h 
    on p.pat_id = h.pat_id 
    and p.app_id = h.app_id 
left join junction j 
    on p.pat_id = j.pat_id 
left join disease d 
    on j.dis_id = d.dis_id 

Если вам нужна помощь обучение присоединиться синтаксис, проверьте полезный visual explanation of joins.

Обратите внимание, что я использовал INNER JOIN между patient и history и присоединился к таблицам на обоих ключей в patient. Этот тип соединения возвращает все сопоставимые записи в обеих таблицах.

Я использовал LEFT JOIN на двух других таблицах, которые возвратят все данные о пациенте/истории, даже если в двух других таблицах нет соответствующей записи. В зависимости от ваших потребностей вы можете использовать INNER JOIN на этих таблицах.

+0

Спасибо @bluefeet .. Это работает –

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