[英]SQL query to join two tables without common column in oracle DB
我有2個表employee
和job_role
,如下所示。 我需要編寫一個SQL查詢以通過加入此表來查找每個雇員的指定。
輸入表
雇員
e_id e_name Salary
-----------------------
1 ABC 1000
2 CDE 2000
3 GHI 3500
4 JKL 5000
5 MNO 4000
6 XYZ 3000
職業角色
Designation Sal_min Sal_max
-------------------------------
Associate 1000 2000
Lead 2001 3000
Manager 3001 5000
問題:如果employee
表中的薪水在sal_min
到sal_max
范圍內,請找到指定
所需的輸出:
e_id e_name Salary Designation
-----------------------------------
1 ABC 1000 Associate
2 CDE 2000 Associate
3 GHI 3500 Manager
4 JKL 5000 Manager
5 MNO 4000 Manager
6 XYZ 3000 Lead
ON
子句可以包含=
以外的其他運算。 在這里,您可以使用<=
和>=
(如果需要,可以使用BETWEEN
)。
SELECT E.E_ID,
E.E_NAME,
JR.DESIGNATION
FROM EMPLOYEE E
LEFT JOIN JOB_ROLE JR
ON JR.SAL_MIN <= E.SALARY
AND JR.SAL_MAX >= E.SALARY;
(注意:我使用LEFT JOIN
的情況是,有任何員工的薪水都不匹配。我猜想您是希望看到他們的名字為NULL
不是根本不喜歡。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.