如何使用主键返回嵌套的equals

时间:2014-04-08 00:45:11

标签: sql sql-server

我正在寻找一种方法来呈现" name"。我需要从tblPatientDrugAllergy获取ID,它将匹配tblPatientDrugAllergyReaction中的ID。

PatientDrugAllergyReaction中的ID应与tblAllergyReaction绑定,并从那里返回Name。我得到了第一个,但是并且正在返回一切而不是分层。我究竟做错了什么?任何帮助将不胜感激。

select tblAllergyReaction.name 
 From tblPatientDrugAllergyReaction s, tblPatientDrugAllergy t, tblAllergyReaction u
  where tblPatientDrugAllergy.ID=tblPatientDrugAllergyReaction.ID and 
  s.PatientDrugAllergyID = u.ID

2 个答案:

答案 0 :(得分:0)

问题似乎是你对表进行别名,但是没有使用别名

select u.name 
From tblPatientDrugAllergyReaction s, tblPatientDrugAllergy t, tblAllergyReaction u
where t.ID=s.ID and 
    s.PatientDrugAllergyID = u.ID

答案 1 :(得分:0)

很难准确理解你想要的东西。下次请包括样本表/数据和所需的输出。这将使某人更容易做出正确的回应。

如果我理解正确,问题似乎是您在tblAllergyReaction加入tblPatientDrugAllergyReactionPatientDrugAllergyID = ID,这可能不正确。

请改为尝试:

  select ar.name 
  from tblPatientDrugAllergyReaction AS pdar,
       tblPatientDrugAllergy AS pda t, 
       tblAllergyReaction AS ar u
   where pda.ID=pdar.PatientDrugAllergyID 
   and pdar.ID = ar.ID