sql的自我關聯查詢

2021-09-18 01:27:39 字數 1187 閱讀 3460

今天在學習sql的時候,遇到乙個很有意思的問題---單錶中字段存在關聯,圖中字段empno表示員工編號,ename表示員工姓名,job表示職位,mgr表示上級領導員工編號,hiredate表示入職日期,sal表示薪水,comm表示提成,deptno表示部門表的編號,此處作為外來鍵。

題目要求是列出所有員工的姓名及其直接上級的姓名,此時我們需要將這張單錶分成兩組表,員工表和直接上級表。

效果如下:

1、這種方式查詢出來的資料只包括帶上級的資料,列如

select banknumber.fismotheraccount, banknumber.fbankaccountnumber, banknumber.fname_l2 , mbanknumber.fbankaccountnumber, mbanknumber.fname_l2  from t_bd_accountbanks  banknumber ,(   select fid, fbankaccountnumber, fname_l2   from t_bd_accountbanks  )mbanknumber where banknumber.frelemotheracctid=mbanknumber.fid
2、這種方式查詢出來的帶上級不帶上級的資料都可以

select banknumber.fismotheraccount, banknumber.fbankaccountnumber, banknumber.fname_l2 , mbanknumber.fbankaccountnumber, mbanknumber.fname_l2  from t_bd_accountbanks  banknumber left join t_bd_accountbanks 

mbanknumber on mbanknumber.fid=banknumber.frelemotheracctid

SQL關聯查詢

一 關聯基礎 連線查詢 查詢兩個或兩個以上資料表或檢視的查詢,通常建立在存在相互關係的父子表之間。關聯查詢 查詢的結果集中的字段可能來自多張表。要從多張表中獲取資料時,就要找到這幾張表記錄的對應關係,然後建立聯絡後分別獲取。所以連線條件 指明表之間記錄的對應關係 在關聯查詢中十分關鍵。n 張表關聯查...

sql關聯查詢

1.內連線 是最普遍的一種連線方式,選出相連的兩張表都互相滿足連線條件的資料。寫法 select ainner joinb on a.id b.aid 其中inner可忽略 舉例 a表 查詢語句 select from a inner join b on a.id b.id。將a表的每一條資料拿出來...

SQL關聯查詢

select from a,b c 或者 select from a cross join b cross join c 注 沒有任何關聯條件,結果是 笛卡爾積,結果集 會很大,沒有意義,很少使用。select from a,b where a.id b.id 或者 select from a in...