2013-05-29 5 views
0

У меня есть таблица с именем пациента, в котором у меня есть столбцы какSQL-запрос для выбора значений таблицы отображения?

ID Disease1 Disease2 Disease3 
     ---------- 
1  4  3   2 
     ---------- 
2  2  5 
     ----------  
3  6 
     ---------- 
4  1 

Эти отображения значений, которые я получил от стола болезни, в которых имена болезни размещены как

1 hypertension 
2 niddm 
3 allergy 
4 cough 
5 floo 
6 vv 
etc 

Теперь я хочу SQL запрос, чтобы выбрать

ID Disease1 Disease2 Disease3 
      ---------- 
1 cough allergy  niddm 
      ---------- 
2 niddm floo 
      ---------- 
3 vv 
      ---------- 
4  HT 

Пожалуйста, имейте в виду, что у меня есть таблица отображается с 4,5 таблиц, и я хочу, исходные значения в месте идентификаторами от них всех.

+0

это ALRE ady на месте или вы разрабатываете схему базы данных? Если так, я бы пересмотрел ваш дизайн и получил новую таблицу под названием PatientDisease - ваша текущая настройка - плохой дизайн, который требует, чтобы вы несколько раз присоединились к своей таблице заболеваний. – DaveRlz

ответ

2

Вы должны присоединиться таблицу Disease трижды на столе Patient, так как есть три колонки из Patient, которые зависят от Disease

SELECT a.ID, 
     b.Disease AS Disease1, 
     c.Disease AS Disease2, 
     d.Disease AS Disease3 
FROM Patient a 
     LEFT JOIN Disease b 
      ON a.Disease1 = b.ID 
     LEFT JOIN Disease c 
      ON a.Disease2 = c.ID 
     LEFT JOIN Disease d 
      ON a.Disease3 = d.ID 

Для дальнейшего получить больше знаний о соединяющую, любезно перейдите по ссылке ниже:

+0

http://www.sqlfiddle.com/#!2/1a4b1b/1 –

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