Подзапрос возвратил более 1 значения в sql-сервере

SELECT * FROM TableC INNER JOIN TableB ON TableB.mid=TableC.mid INNER JOIN TableA ON TableA.userid=( SELECT distinct userid FROM TableB) 

Подзапрос возвратил более 1 значения.

Medical_Master

  MedicalID MedicalName 1(pk) abc 2 xyx 3 pqr 

Child_Medical_Master

  ChildMID MedicalID Station Name 1(pk) 1(fk) bnb mfk 2 1 def rwr 3 2 re wrw 

Medical_Visit

  VTID PMID RFMID age 1(pk) 2(fk) 1 34 2 2 3 45 3 3 1 45 4 1 2 44 5 2 2 76 

Medical_Study

  UID VTID ChildMID SMID Date time 1(pk) 1(fk) 1 1 kk jdj 2 2 3 2 kdf lfl 6 3 2 3 rgr rtr 

Doctor_Master

  RFMID Doctorname 1(pk) mr.john 2 mr.jack 3 mr.jim 

PAtient_Master

  PMID Firstname LastNAme 1(pk) df ere 2 rwe rwer 3 rwr fwr 

Study_Master

  SMID MedicalID Description Duration 1(pk) 1(fk) fdf efe 2 1 ddf dfdf 3 2 df ef 

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

 UID,PMID,FIRSTNAME,LASTNAME,AGE,MEDICALNAME,DESCRIPTION,STATION,DATE,DoctorName 

Предполагая, что вы не хотите выполнять нормальное соединение, и есть цель для подзапроса над нормальным соединением:

Вам либо нужно ограничить то, что входит в подзапрос, например:

 select * from TableC inner join TableB on TableB.mid=TableC.mid inner join TableA on TableA.userid=(select distinct userid from TableB where userid=3) 

или изменить свой основной запрос следующим образом:

 select * from TableC inner join TableB on TableB.mid=TableC.mid inner join TableA on TableA.userid in (select distinct userid from TableB) 

Хорошо, получил код и сделал sqlfiddle для вас, чтобы он работал.

 select medical_study.uid, patient_master.PMID, patient_master.firstname, patient_master.surname, medical_visit.age, medical_master.medicalName, study_master.descripto, child_medical_master.station, medical_study.dater, doctor_master.doctorname from medical_master join child_medical_master on medical_master.medicalID=child_medical_master.medicalID join medical_study on child_medical_master.childMID=medical_study.childMID join medical_visit on medical_study.VTID=medical_visit.VTID join doctor_master on medical_visit.RFMID=doctor_master.RFMID join patient_master on medical_visit.PMID=patient_master.PMID join study_master on medical_master.medicalID=study_master.medicalID 

попробуй это:

  select * from TableC inner join TableB on TableB.mid=TableC.mid inner join TableA on TableA.userid=TableB.userid 
Interesting Posts

Платежи лицензий на SQL Server 2008 и 2012 для одного разработчика?

Получите дату в прошлую пятницу, если сегодня не пятница, используя T-SQL

Как заказать BY без столбца в SELECT

Как заполнить 'select' из базы данных в asp.net

Обновление каждой строки строки SQL Server с использованием цикла

Запрос XPath: анализ нескольких путей с использованием одного и того же запроса (Cross Apply / .nodes ())

SQL-запрос занимает больше времени, когда диапазон дат меньше?

Сервер Sql обновляет несколько столбцов из другой таблицы

как вызвать веб-сервис из t-sql

Кумулятивные включают записи в выходные данные хранимой процедуры на основе нескольких битовых параметров

Какова идеальная стратегия индексирования для SQL Server?

SqlDataAdapter.Fill () в SqlTransaction – это плохая практика?

Невозможно неявно преобразовать тип 'string' в 'System.Web.UI.WebControls.Label'

SSRS – несколько вызовов хранимых процедур на основе 1 параметра в 1 отчете?

DBCC CHECKDB для проверки ошибок в базе данных SQL Server

Давайте будем гением компьютера.