2013-04-05 5 views
0

Я хочу получить данные из 4 таблиц. Patient Таблица имеет id как PK, который является внешним ключом в других трех таблицах ett, phar и ssc. Если пациент находится в одной категории. то есть идентификатор пациента pt1 существует в любой из трех таблиц. теперь я хочу получить информацию о пациенте вместе со своей ассоциированной категорией.Я хочу получить данные из 4 таблиц в SQL Server

Мой запрос:

SELECT * 
FROM Patient p 
INNER JOIN ETT t 
ON p.Patient_ID = t.Patient_ID || INNER JOIN Pharmacological ph 
ON p.Patient_ID = ph.Patient_ID 

Я использовал OR положение, потому что я хочу только 1 внутреннее соединение выполняет в одно время. но это не дает мне результатов, никаких предложений?

+0

тем, что вы имеете в виду, идентификатор пациента может существовать только в одном из таблицы в 'ett',' phar', 'ssc'? –

+0

, в какую таблицу вам нужно присоединиться к Патине и в каком случае? –

ответ

0

Для или - не использовать, использовать "или" Вы не можете присоединиться или изменить формат запроса.

2

.... таблица Пациент имеет идентификатор, как ПК, который является внешним ключом другого имени три таблицы: ETT, Фар и ССКА где ложь пациента только один категории , Пример: идентификатор пациента pt1 существует в любом из трех таблиц.

На основании вашего заявления, вы можете объединить все таблицы в таблице Patient, используя LEFT JOIN поскольку запись может существовать только на одном столе. В нижеследующем запросе используется COALESCE, который возвращает первое значение с нулевым значением с int list.

Единственное, что вам нужно - это вручную указать имена столбцов, которые вы хотите отобразить в списке, как показано ниже.

SELECT a.*, 
     COALESCE(t.colA, p.ColA, s.ColA) ColA, 
     COALESCE(t.colB, p.ColB, s.ColB) ColB, 
     COALESCE(t.colN, p.ColN, s.ColN) ColN 
FROM Patient a 
     LEFT JOIN ETT t 
      ON a.Patient_ID = t.Patient_ID 
     LEFT JOIN Phar p 
      ON a.Patient_ID = p.Patient_ID 
     LEFT JOIN SSC s 
      ON a.Patient_ID = s.Patient_ID 

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

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