我有两张桌子:
Vacation_days :
id name work_days tier
--------------------------------
1 John 366 Null
2 Mike 764 Null
3 Josh 1163 Null
Vacation_algorithm :
day1 day2 tier
-------------------------
0 184 1
185 364 2
365 5999 3
6000 1000000 4
我想遍历vacation_days表中的每一行,看看vacation_days中work_days对应的等级(work_days必须介于start_day和end_day之间)。
然后我想将该层号放在vacation_days中包含的层列中,该列当前填充了空值。
我试过这个:
Select tier
From Vacation_Algorithm
Where (Select work_days
From vacation_days
Where work_days = 366) between day1 and day2.
这将返回正确的输出,这是一个具有第3层的列。但是,我想要一个公式对我的Vacation_days表中的所有行执行此操作。
答案 0 :(得分:2)
只需使用join
即可。我会选择一个left join
,所以如果没有匹配则不会留下任何行:
select vd.*, va.tier
from vacation_days vd left join
vacation_algorithm va
on vd.work_days between va.day1 and va.day2;