当前位置: 首页 > 知识库问答 >
问题:

下面[关闭]的确切查询是什么

支淮晨
2023-03-14

我是SQL的初学者这是我的病人表

如果我搜索id=1,那么我需要得到ID1和2行,因为ID1的族类型是'p',所以它返回的移动应用程序id是相同的行

如果我搜索id=2,我只需要得到id第2行(bcz它的族类型=c)

如果我搜索id=3,我只需要得到id第3行(bcz它的族类型=c)

如果我搜索id=4我需要得到第4、5、6行(bcz搜索id族类型=p和移动应用id相同)

注意:mobileAppId只有一个“p”familyType,并且可能超过1个“c”familyType

我试了很多条件,但都没有达到预期的效果

有谁能帮帮我吗?

共有2个答案

周睿范
2023-03-14

familytype'p'时,可以在mobileappid列上使用左联接来实现。

SELECT CASE WHEN c.id IS NULL THEN p.id          ELSE c.id          END AS id         
     , CASE WHEN c.id IS NULL THEN p.patientName ELSE c.patientName END AS patientName
     , CASE WHEN c.id IS NULL THEN p.gender      ELSE c.gender      END AS gender     
     , CASE WHEN c.id IS NULL THEN p.familyType  ELSE c.familyType  END AS familyType 
     , CASE WHEN c.id IS NULL THEN p.mobileAppId ELSE c.mobileAppId END AS mobileAppId
  FROM patient p
  LEFT JOIN patient c ON c.mobileAppId = p.mobileAppId
                     AND p.familyType = 'p'
 WHERE p.id = 1
 ORDER BY id

ID=1的结果

夏和雅
2023-03-14

以下查询工作:

select * 
from patient
where 
  (id = <searchId> and familyType = 'c')
  or mobileAppId = (
    select mobileAppId from patient
    where familyType = 'p' and id = <searchId>
  )

在线演示:

  • 搜索id=1
  • 搜索id=2
  • 搜索id=3
  • 搜索id=4
  • 搜索id=7

注意:对于searchid=1,还返回id=7的行,因为mobileappid=1

 类似资料:
  • 我在网上搜索了“Gradle classpath site:stackoverflow.com”和“Gradle classpath”,只在以下文件中找到相关信息: Gradle:What is the difference between classpath and compile dependencies? 余登宝的回答是这样写的: 编译'org.hibernate:hibernate-cor

  • 问题内容: 我没有完全了解Node.js的全部含义。也许是因为我主要是基于Web的业务应用程序开发人员。它是什么,有什么用? 到目前为止,我的理解是: 编程模型是事件驱动的,尤其是它处理I / O的方式。 它使用JavaScript,解析器为V8。 它可以轻松用于创建并发服务器应用程序。 我的理解正确吗?如果是,那么事件I / O的好处是什么,并发性东西还有更多好处吗?另外,Node.js的发展方

  • 这两天我一直在和Git Bash合作。我现在知道了诸如、、、和等基本操作。但我还是不知道Git Bash本身到底是什么! 我已经搜索了很多关于Git Bash的内容,但是我看到的所有站点都集中在它的命令的功能上。我仍然没有为我的问题找到一个好的答案。现在,我想,我在正确的地方得到这个答案!

  • 团队, 使用continueAsNew的确切用例是什么? 由于我们支持Cron附表进行定期活动,我不知道使用它的场景。 我们这样做是为了提供向后兼容性吗

  • 本文向大家介绍什么是相关子查询?如何使用这些查询?相关面试题,主要包含被问及什么是相关子查询?如何使用这些查询?时的应答技巧和注意事项,需要的朋友参考一下 经验更加丰富的开发人员将能够准确地描述这种类型的查询。相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。