[英]How to populate a column in SQL by comparing values from one table against another
我有兩個表:
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表中的所有行執行此操作。
只需使用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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.