2015-12-08 7 views
0

У меня есть две таблицы:SQL таблицы выберите

  • Patients где я patient_ID в качестве первичного ключа и других деталей.

  • Patients_Treatments где у меня есть patient_ID от пациентов как внешний ключ, обращение_код и другие столбцы.

Я просил, чтобы найти все коды лечения пациента, которые имеют то же treatment_code как пациент, чей идентификатор 999.

Я сижу в течение двух дней, пытаясь найти решение, и я просто не могу» Мне удалось что-то придумать. Кажется простым, но я просто не могу найти решение. Спасибо!

Пример:

enter image description here

Ожидаемый выход являются детали (подробности означает имя, фамилию и идентификатор пациента) из: Tal Шалом Dan Шабтай Elad Gigi

+0

Пожалуйста, объясните, что * обычный SQL * есть. Является ли этот SQL Server? Oracle? Что-то другое? – Siyual

+0

Можете ли вы добавить данные таблицы образца и ожидаемый результат на свой вопрос? И покажите нам свою текущую попытку запроса и сообщите нам, что с ней не так? (Школьное задание?) – jarlh

+0

, пожалуйста, разместите некоторые образцы данных, и только мы можем дать решение, которое вы можете реализовать в своем требовании. – mohan111

ответ

0

Если вы ищут Treatment_Code и Patient информацию для пациентов, которые делят Treatment_Code, принадлежащих Patient_Id: 999, это должно получить эти результаты:

Select T.Treatment_Code, P.First_Name, P.Last_Name, P.Patient_Id 
From Patients_Treatments T 
Join Patients   P On P.Patient_Id = T.Patient_Id 
Where T.Patient_Id In 
(
    Select T1.Patient_Id 
    From Patients_Treatments T 
    Join Patients_Treatments T1 On T1.Treatment_Code = T.Treatment_Code 
            And T1.Patient_ID <> T.Patient_Id 
    Where T.Patient_Id = 999 
)