sql - 共享外部表上的两个查询
问题描述
假设我有一个数据库设置如下:
+--------+ +---------+
| Person | 1:1 | Company |
| +----->+ |
| | | |
+--------+ +---------+
| |
| +--------+ |
|1:M | Assets | 1:M|
+------>+ +<-------+
| |
+--------+
其中 aPerson
有 a Company
,但 aPerson
和 aPerson's Company
都可以有Assets
我将如何构建一种查询,例如,寻找:
- 资产为的人
< 5000
,AND
- 其公司拥有以下资产的人
> 5000
解决方案
一个简单subquery
的 forcompanies
应该这样做。
select * from people t1
inner join assets t2 on t2.people_id = t1.people_id
where t2.assets < 5000 or
t2.company_id in (select company_id from companies c
inner join assets a on a.company_id = c.company_id
where a.assets > 5000
)
推荐阅读
- tensorflow - 不同大小的输入和输出的深度学习架构?
- base64 - 在 Inno Setup 中将字符串编码为 Base64(Inno Setup 的 Unicode 版本)
- android - Retrofit 2 使用 TypedFile 上传图片
- javascript - 在标头中传递访问令牌并在 javascript 中重定向
- android - 无法将 altbeacon 库包含到新项目中
- python - 有条件地将某些行值复制到其他行
- java - 在 Java 中使用 BouncyCastle 生成数字签名
- matlab - 在 MATLAB 中根据另一个变量找到一个变量
- css - 使用 Chrome 打印背景不适合分页符之前的 div 框时,如何不显示两次框?
- javascript - 我查找最长单词的代码不起作用