更新時(shí)間:2023-11-03 來(lái)源:黑馬程序員 瀏覽量:
連接查詢可以實(shí)現(xiàn)多個(gè)表的查詢,當(dāng)查詢的字段數(shù)據(jù)來(lái)自不同的表就可以使用連接查詢來(lái)完成。連接查詢可以分為:內(nèi)連接查詢、左連接查詢、右連接查詢、自連接查詢,本節(jié)先來(lái)介紹這四種鏈接查詢的用法:
內(nèi)連接查詢,查詢兩個(gè)表中符合條件的共有記錄,內(nèi)連接查詢效果圖如下:
內(nèi)連接查詢語(yǔ)法格式如下:
select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2說(shuō)明:
inner join 就是內(nèi)連接查詢關(guān)鍵字
on 就是連接查詢條件
例1:使用內(nèi)連接查詢學(xué)生表與班級(jí)表:
select * from students as s inner join classes as c on s.cls_id = c.id;
以左表為主根據(jù)條件查詢右表數(shù)據(jù),如果根據(jù)條件查詢右表數(shù)據(jù)不存在使用null值填充,左連接查詢效果圖如下:
左連接查詢語(yǔ)法格式:
select 字段 from 表1 left join 表2 on 表1.字段1 = 表2.字段2
說(shuō)明:
left join 就是左連接查詢關(guān)鍵字
on 就是連接查詢條件
表1 是左表
表2 是右表
例1:使用左連接查詢學(xué)生表與班級(jí)表:
select * from students as s left join classes as c on s.cls_id = c.id;
以右表為主根據(jù)條件查詢左表數(shù)據(jù),如果根據(jù)條件查詢左表數(shù)據(jù)不存在使用null值填充,右連接查詢效果圖如下:
右連接查詢語(yǔ)法格式:
select 字段 from 表1 right join 表2 on 表1.字段1 = 表2.字段2
說(shuō)明:
right join 就是右連接查詢關(guān)鍵字
on 就是連接查詢條件
表1 是左表
表2 是右表
例1:使用右連接查詢學(xué)生表與班級(jí)表:
select * from students as s right join classes as c on s.cls_id = c.id;
自連接查詢
左表和右表是同一個(gè)表,根據(jù)連接查詢條件查詢兩個(gè)表中的數(shù)據(jù)。,區(qū)域表效果圖如下:
例1:查詢省的名稱(chēng)為“山西省”的所有城市
創(chuàng)建areas表的語(yǔ)法格式如下:
create table areas( id varchar(30) not null primary key, title varchar(30), pid varchar(30) );
執(zhí)行sql文件給areas表導(dǎo)入數(shù)據(jù):
source areas.sql;
說(shuō)明:
source 表示執(zhí)行的sql文件
自連接查詢的用法:
select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = '山西省';