我是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
我试了很多条件,但都没有达到预期的效果
有谁能帮帮我吗?
当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
的结果
以下查询工作:
select *
from patient
where
(id = <searchId> and familyType = 'c')
or mobileAppId = (
select mobileAppId from patient
where familyType = 'p' and id = <searchId>
)
在线演示:
注意:对于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
错误 pom.xml
问题内容: 我没有完全了解Node.js的全部含义。也许是因为我主要是基于Web的业务应用程序开发人员。它是什么,有什么用? 到目前为止,我的理解是: 编程模型是事件驱动的,尤其是它处理I / O的方式。 它使用JavaScript,解析器为V8。 它可以轻松用于创建并发服务器应用程序。 我的理解正确吗?如果是,那么事件I / O的好处是什么,并发性东西还有更多好处吗?另外,Node.js的发展方
这两天我一直在和Git Bash合作。我现在知道了诸如、、、和等基本操作。但我还是不知道Git Bash本身到底是什么! 我已经搜索了很多关于Git Bash的内容,但是我看到的所有站点都集中在它的命令的功能上。我仍然没有为我的问题找到一个好的答案。现在,我想,我在正确的地方得到这个答案!
团队, 使用continueAsNew的确切用例是什么? 由于我们支持Cron附表进行定期活动,我不知道使用它的场景。 我们这样做是为了提供向后兼容性吗
本文向大家介绍什么是相关子查询?如何使用这些查询?相关面试题,主要包含被问及什么是相关子查询?如何使用这些查询?时的应答技巧和注意事项,需要的朋友参考一下 经验更加丰富的开发人员将能够准确地描述这种类型的查询。相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。