首页 > 解决方案 > 共享外部表上的两个查询

问题描述

假设我有一个数据库设置如下:

+--------+      +---------+
| Person | 1:1  | Company |
|        +----->+         |
|        |      |         |
+--------+      +---------+
|                         |
|       +--------+        |
|1:M    | Assets |     1:M|
+------>+        +<-------+
        |        |
        +--------+

其中 aPerson有 a Company,但 aPerson和 aPerson's Company都可以有Assets

我将如何构建一种查询,例如,寻找:

标签: sqlpostgresql

解决方案


一个简单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
        )

推荐阅读