Left join多表查詢

2021-08-20 23:47:37 字數 1462 閱讀 4313

sql 多表查詢中用到的連線查詢使用較多的是left join,連線的表查詢到的資料為空時,主表顯示null值,不會影響整個查詢結果

具體用法  

1.建立表單 教師表和學院表

create table if not exists teacher 

( id int(11) auto_increment primary key,

name varchar(20),

age int(11),

academy int(11)

)create table if not exists academy

( id int(11) auto_increment primary key,

name varchar(20)

)

2.插入資料

insert into academy(name) values("計算機");

insert into academy(name) values("機電");

insert into academy(name) values("土木");

insert into teacher(name,age,academy) values("張三",25,1);

insert into teacher(name,age,academy) values("李四",20,2);

insert into teacher(name,age,academy) values("王五",21,3);

insert into teacher(name,age,academy) values("趙六",24,1);

結果:教師表:

3.開始查詢,查詢結果要求,查詢到教師的所有資訊,包括學院的名稱

注意點:必須給表起乙個別名,否則匯報屬性ambiguously衝突,分不清是哪個表的屬性值

查詢語句

select t.id,t.name,t.age,a.name as academy

from teacher t

left join academy a on t.academy=a.id

order by id asc

查詢結果

注意

a.name as academy
這句話將查詢到的學院名作為乙個學院列的值

連線同乙個表有多個條件時可以寫兩條連線這張表的語句,用別名區分開,應該有其他辦法,但我暫時還沒找到

如何使用LEFT JOIN實現多表查詢

什麼是left join請各位自行了解,廢話不多說,先直接上三張表 組織表 t organization 部門表 t department 使用者表 t user 邏輯是組織下面有部門,部門下面有使用者,組織和部門通過organization id欄位關聯,部門和使用者通過department id...

關於多表的leftJoin

建立表結構如下 create table x.a a1 int,a2 varchar 10 create table x.b b1 int,b2 varchar 10 create table x.c c1 int,c2 varchar 10 insert into x.a values 1 hah...

多表查詢 多表查詢 多表查詢

查詢語法 select 列表名稱 from 表明列表 where 笛卡爾積 有兩個集合a,b,取這兩個集合的所有組成情況 要完成多表查詢,需要消除無用的資料 多表查詢分類 1 內連線查詢 1 隱式內連線 使用where消除無用的資料 例子 select t1.name,t1.gender,t2.na...