首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL:首先拉取与另一个表中的值匹配的值

SQL:首先拉取与另一个表中的值匹配的值
EN

Stack Overflow用户
提问于 2015-09-02 06:11:38
回答 1查看 25关注 0票数 0

我为工作创建了一个日程安排应用程序,我遇到了一个问题,我花了很多天试图解决这个问题,但没有运气。该应用程序从具有患者表、临床医生表和约会表的数据库中提取信息。

当前,当用户从应用程序的下拉列表中选择患者时,将执行一个查询,该查询返回用户可以选择将预约分配给的所有临床医生。问题是,有数百名临床医生,而患者通常只看相同的3-4名临床医生。

我想要做的是创建一个查询,它拉取所有临床医生,但首先显示那些在过去与特定患者进行过预约的临床医生,然后列出所有其他临床医生。

基本上,查询需要检查特定PatientID的约会表,提取过去与该客户进行过预约的所有临床医生,然后在该列表下列出所有没有见过该患者的临床医生。

然后,我想出的最好的方法是这样,但我真的不知道在这一点上还可以尝试什么。

代码语言:javascript
运行
复制
SELECT Clinician.att_id, Clinician.att_name, 
       Case When Clinician.att_id = Appointments.att_id THEN 1 ELSE 0 END as common 
FROM Clinician inner join 
     Appointments
     on Clinician.att_id = Appointments.att_id
order by common desc;
EN

回答 1

Stack Overflow用户

发布于 2015-09-02 06:18:21

如果你想要所有的临床医生,那么你需要一个left join或其他一些结构。

代码语言:javascript
运行
复制
SELECT c.att_id, c.att_name
FROM Clinician
ORDER BY (CASE WHEN EXISTS (SELECT 1 
                            FROM Appointments a
                            WHERE c.att_id = a.att_id AND
                                  a.patient_id = @patient_id
                           )
               THEN 1 ELSE 2
          END)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32341672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档