我有如下所示的 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/