sql - 加入 3 个表 postgresql

标签 sql postgresql join

我有如下所示的 3 个表

table 1
________________________________________________
id | effective_date     | table_3_id | acc_name |
___|____________________|____________|__________|
112|2012-02-01 12:00:00 |     23     | Over Pay |
___|____________________|____________|__________|

table 2
__________________________________
id    | table_1_id     | amount  |
______|________________|_________|
 1    |    112         |  400.00 |
______|________________|_________|

table 3
________________________________________
id  | emp_num  | first_name  | last_name|
____|__________|_____________|__________|
 23 |   100004 |   John      |    Doe   |  
____|__________|_____________|__________|

我有开始日期和结束日期,还有 acc_name 的预定义值。我想要做的是,从具有介于开始日期和结束日期之间的有效日期的相关表中检索 emp_num、first_name、last_name 和金额,并且 acc_name 应该是预定义的值。

对于上面的表格,如果我的开始日期 = 2012-01-30 12:00:00,结束日期 = 2012-03-01 12:00:00 并且 acc_name = Over Pay;那么应该返回以下值。

emp_num = 100004  
first_name = John  
last_name = Doe  
amount = 400.00

我该怎么做?我不确定加入所有 3 个表是否是这里的最佳方法。谁能帮忙?

最佳答案

是的。使用联接。

select emp_num, first_name, last_name, amount
from 
    table1 
       inner join table2 on table1.id = table2.table_1_id
       inner join table3 on table1.table_3_id = table3.id
where
    effective_date between '2012-01-30 12:00:00' and '2012-03-01 12:00'
and 
    acc_name = 'Over Pay'

没有 2 月 30 日。

关于sql - 加入 3 个表 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245056/

相关文章:

sql - 愚蠢的sql错误

mysql - 关系数据库竞争条件

sql - 在主键冲突错误后继续事务

ruby-on-rails - rails : has_many :through or has_many_and_belongs_to?

sql - 为什么以下连接会显着增加查询时间?

Mysql在案例内部加入

sql - sql server 中的全文搜索

sql - 我如何解释 SELECT DISTINCT 中的计数差异?

php 与 postgresql 数据库

postgresql - 通过 PhpStorm 连接到 PostgreSQL