MySQL多表查询大全(超精确)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                MySQL多表查询大全(超精确)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                目錄
1、等值查詢
2、內連接
3、外連接
3.1、左外連接
?3.2、右外連接
?3.3、完全外連接
4、交叉連接
5、自連接
6、聯合查詢
如果我們要查詢的數據分布在不同的表時,那么需要連接多張表進行多表查詢。
--而這些表當中,必須存在主外鍵關系(直接關聯)
--如果不存在直接關系,則必定存在間接關系,否則業務上是沒有意義的
1、等值查詢
select 字段集合 from 表1,表2,...,表n where 條件 (連接條件,一般使用主外鍵)#注意:
條件一般是主鍵和外鍵的關聯(可能包含篩選數據的條件);
一般給個表取別名,提高閱讀性、性能以及解決字段沖突
(多次忘記):多(3個或以上)表關聯查詢時,關聯條件用AND連接
create table 教師表 (編號 int auto_increment primary key not null ,姓名 char(30) ,性別 char(2) check(性別='男' or 性別='女') default '男',專業 char(30) )create table 學生表 (學號 int auto_increment primary key not null ,姓名 char(30) ,性別 char(2) check(性別='男' or 性別='女') default '男',身高 float ,學分 float ,教師編號 int foreign key references 教師表(編號) )insert into 教師表 values ('張三','男','計算機') insert into 教師表 values ('李四','男','日語') insert into 教師表 values ('王五','女','英語')insert into 學生表 values ('學生一','男',1.5,50,1) insert into 學生表 values ('學生二','女',2.5,60,1) insert into 學生表 values ('學生三','男',3.5,70,2) insert into 學生表 values ('學生四','女',4.5,80,2)select * from 教師表 select * from 學生表2、內連接
-- 功能同等值連接 -- 好處:連接條件與篩選條件分離,簡潔明了 select 字段集合 from 表1 [inner] join 表2 [inner join 表3] on 條件(主外鍵|相同數據類型) where 條件3、外連接
3.1、左外連接
以第一張表為基礎向第二張表匹配,匹配成功則正常顯示,匹配不成功,則第二張表以NULL值顯示
select 字段集合 from 表1 left [outer] join 表2 on 條件?3.2、右外連接
以第二張表為基礎向第一張表匹配,匹配成功則正常顯示,匹配不成功,則第一張表以NULL值顯示
select 字段集合 from 表1 right [outer] join 表2 on 條件?3.3、完全外連接
左、右的數據都要顯示,如果能連接,則正常顯示;如果不能連接,則以null值顯示
# select 字段集合 from 表1 full [outer] join 表2 on 條件 # MySQL不支持,可以使用UNION實現 聯合查詢:實現完全外連接 SELECT * from 表1 LEFT JOIN 表2 on 條件 UNION SELECT * from 表1 RIGHT JOIN 表2 on 條件;#注意:一般表與表之間使用主外鍵關聯數據表,確保數據的一致性
4、交叉連接
-- 語法一 select 字段集合 from 表1 [inner] join 表2 #sql server 使用關鍵字 cross-- 語法二 select 字段集合 from 表1,表25、自連接
-- 語法一 select * from 表1 as 別名 join 表1 as 別名 on 條件-- 語法二 select * from 表1 as 別名, 表1 as 別名 where 條件6、聯合查詢
把多個查詢的結果合并在一起
SELECT f1,f2 FROM T_1 UNION [ALL] SELECT f1,f2 FROM T_2總結
以上是生活随笔為你收集整理的MySQL多表查询大全(超精确)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 一文读懂IaaS、PaaS、SaaS的含
- 下一篇: 测试工具之 LoadRunner Wi
