SQL查詢乙個表中另外乙個表不存在的資料。

2021-09-13 22:47:37 字數 887 閱讀 2614

現在有乙個業務場景,兩張表sy_user 表 sy_org表

其中sy_org表的orgid  = sy_user表的username 

現在有乙個需求 要求剔除 a表中(user) 相對於b表(org)表 多餘的資料 根據對應關係

編寫sql** 

查詢出兩張表中的重複項

select distinct  u.username from sy_user u where u.username 

in (select o.org_id from sy_org o)

查詢出a表中相對於b表多餘的資料

select distinct  u.username 

from sy_user u where u.username

not in (select o.org_id from sy_org o)

刪除a表中相對於b表多餘的資料

delete sy_user ur where ur.username in

(select distinct u.username from sy_user u where u.username

not in (select o.org_id from sy_org o))

關於distinct 關鍵字使用方法

select distinct 列名稱 from 表名稱
使用distinct 關鍵字只用它來返回不重覆記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只能返回它的目標字段,而無法返回其它字段。distinct關鍵字也可以用作多餘項的刪除 如本文。

用乙個表的記錄更新另外乙個表

用table 1的address,phone number更新table 2的address,phone number,注意 1.set 後面加上要更新的列,有多個要更新的列時,加上多個列,2.where 後面加上table 1和table 2的關聯列,有多個關聯列時,加上多個列 3.rownum用...

把乙個表中的資料插入到另外乙個表中

1.在oracle中可以用下面兩種 01 create table newtable as select from oldtable 用於複製前未建立新錶newtable不存在的情況 02 insert into newtable select from oldtable 已經建立了新錶newtab...

SQL中複製乙個表到另外乙個資料庫中

有兩個資料庫分別叫dberp和dbtest,dbtest中有個表叫u 物料編碼,現在我想將此表複製到dberp中,即 dberp中也弄個u 物料編碼表。在sql server management studio中,使用 sql server匯入和匯出嚮導 可以很容易地複製表。如果一定要使用語句,假設...