簡體   English   中英

具有多個表的SQL Join查詢

[英]SQL Join queries with multiple tables

我有一個具有以下布局的數據庫:

employees (person_name, street, city) 
works (person_name, company_name, salary) 
companies (company_name, city) 
manages (person_name, manager_name)

我需要提出一個查詢,使我能夠找到所有收入高於其經理的雇員。 我知道這涉及到員工,工作和管理表之間非常強烈的JOIN聯接,而我還無法獲得一個可以正常工作的聯接。 有人可以幫助我,並解釋如何獲得解決方案嗎?

首先,名字不是一個好鑰匙。

答案的關鍵是您可以多次連接到一個表(請記住為表起別名,以便區分要引用的表)。

無需為您編寫查詢,這意味着您應該選擇“雇員”,然后通過“工程和公司”加入(這將為您提供雇員薪水)。 這應該通過Manages加入,Manages加入員工,以獲取您的經理詳細信息。 此版本的雇員可以第二次加入Works,以獲取經理的薪水。 然后,只需比較WHERE子句中的薪水即可。

SELECT w.person_name
FROM works w 
    INNER JOIN manages m
        ON m.person_name = w.person_name
            INNER JOIN works wManager
                ON wManager.person_name = m.manager_name
WHERE w.salary > wManager.salary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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