11 聯合查詢

2021-10-06 20:55:47 字數 1441 閱讀 4237

#dql語言

##十、分頁查詢

###1.什麼是聯合查詢?

union:將多條查詢語句的結果合併成乙個結果

應用場景:要查詢的結果來自於多個表,且多個表沒有直接的連線關係,但查詢的資訊要保持一致(即從不同表中所查詢的字段列數要一樣,否則報錯)

###2.案例介紹

案例一:查詢部門編號》90或郵箱包含a的員工資訊(用聯合查詢)

select * from employees where department_id>90

union

select * from employees where email like '%a%';

案例二:查詢beauty表中id=2的女神的id和名字,並查詢boys表中id=2的男生的id和名字

select id,name from beauty where id=2

union

select id,boyname from boys where id=2;

查詢的兩張表的內容都是id和名字,所以叫做「查詢的資訊一致」~

結果如下

###3.特點

①要求多條查詢語句的查詢列數是一致的

——即不能從一張表查詢乙個字段,而在另外一張表查詢兩個字段

②要求多條查詢語句的查詢的每一列的型別和順序最好保持一致

——例如我們把案例二中語句

select id,name from beauty where id=2

union

select id,boyname from boys where id=2;

改為

select id,name from beauty where id=2

union

select id,boyname from boys where id=2;

那麼出現的怪現象就如下圖所示

雖然語法沒報錯,但內容看起來的確格式不對

③union關鍵字預設去重,如果使用union all可以包含重複項

——這裡就不舉具體的例子了,大概講一下,假如在我們的beauty表裡面再加一條資訊,但資訊和之前beauty表中的某一女神的資訊一模一樣,那麼我們再用union去查詢時便會自動去重,兩條重複的資訊資料只顯示一條,若要全部顯示,我們可以用union all去查詢!

至此,查詢語句到此結束,下面一章將講dml語言

講dml語言**

Execl ADO SQL 聯合查詢

原題目 如何從兩張excel表中取數,生成第三張表?表一 a姓名 b身份證號 c金額1 張三642120197409020031 21002李四 552120197509020031 31003王五 693120197408020031 20004陳三 642202197409020031 1000...

SQL 聯合查詢

use xsgl go select from student select from cause select from exam 聯合查詢 join on 預設為inner,如果有right or left 那麼就指的是外聯,outer 可以不寫 1.最長見為內聯 table1 inner jo...

mysql聯合查詢

有乙個前提很重要 就是兩個表中的對應字段應該是建立聯合關係且該鍵應唯一 在查詢該聯合建的時候要指明 表.欄位 1.select from 表a,表a子表 where表a.filecode 表a子表.filecodeand表a.id in select 表a子表 id from 表a子表 where ...