簡體   English   中英

SQL查詢在Oracle DB中聯接兩個沒有公共列的表

[英]SQL query to join two tables without common column in oracle DB

我有2個表employeejob_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_minsal_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM