3 5 在乙個表中查詢與其他表不匹配的記錄

2022-06-07 23:57:11 字數 459 閱讀 3185

問題:對於具有相同關鍵字的兩個表,要在乙個表中查詢與另外乙個不匹配的行。例如,要查詢沒有職員的部門.

要查詢部門中每個員工的工作崗位需要在表需要在表deptno及emp中有乙個等值聯接。deptno列就是這兩個表之間的公共值。但是,等值聯接卻不能直接顯示出那個部門沒有員工。這是因為在表emp和dept正在等值聯接時,將會返回滿足聯接條件的所有行。可是我們只需要那些在表dept中不滿足聯接條件的行。

儘管乍看起來這個問題同前乙個問題類似,但是要更複雜一些。其不同之處就是在前乙個問題中,需要列出在表dept中找出在表emp中沒有的部門編號。本節要求可以直接列出dept表中其他的列,而不僅僅是部門編號。

使用外聯結及null篩選(outer關鍵字是可選的):

select d.* from dept d left outer join emp e on (d.deptno = e.deptno) where e.deptno is null;

mysql 查詢在乙個表而不在另乙個表中的資料

a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料 方法一使用 not in 容易理解,效率低 執行時間為 1.395秒 select distinct a.id from a where a.id not in select id...

獲得乙個表在另乙個表中的數量

比如說我有兩張表,一張表是學生表,一張表是班級表,班級表對學生表是一對多的關係。建表語句如下 create table class id int identity 1,1 primary key,year int,name varchar 50 create table student id int...

乙個表查詢程式

巨集處理器或編譯器的符號表管理主要 採用的結構是乙個hash表,hash表的每一項是乙個鍊錶。例如 define in 1,在程式編譯的時候,需要把名字in和替換文字1存入到某個表中。此後,當名字in出現在某些語句中時,如int state in,就必須要用1來替換in。選擇雜湊表,檢索速度快 o ...