當需要同時顯示多個表的字段時,就可以用表連線來實現這樣的功能。表連線分為內連線和外連線。內連線僅選出兩張表中互相匹配的記錄,而外連線會選出其他不匹配的記錄。以下面兩張表為示範:
表名:teacher_table
建表語句:
create
table teacher_table(
teacher_id int
notnull auto_increment primary
key,
teacher_name varchar(20),
phone_number varchar(20),
);
表名:student_table
建表語句:
create
table student_table(
id int
notnull auto_increment primary
key,
name varchar(20),
teacher int,
foreign
key(teacher) references teacher_table(teacher_id) on
delete
setnull
onupdate
cascade
);
表連線查詢語句語法如下:
select column1,column2...
from table1,table2...
[where condition];
其中,column為待查詢的列名,table為需要引用的表。
如果兩個表中有相同的列名,則需要在這些同名列之間使用表別名字首或表名字首作為限制,以免混淆。
例:
select
name,teacher_name
from
teacher_table t,student_table s
where
s.teacher = t.teacher_id;
執行結果:
外連線分為左外連線和右外連線,具體定義為:
左連線:包含所有的左邊表中的記錄甚至是右邊表中沒有和它匹配的記錄。
右連線:包含所有的右邊表中的記錄甚至是左邊表中沒有和它匹配的記錄。
左連線查詢示例:
select
teacher_name,name
from
teacher_table t left
join student_table s
on t.teacher_id = s.teacher;
查詢結果:
右連線和左連線類似,兩者可以互相轉換,例如上面的例子可以改寫為:
select
teacher_name,name
from
student_table s right
join teacher_table t
on s.teacher = t.teacher_id;
查詢結果同 MySQL基礎 連線查詢
含義 又稱多表查詢,當查詢的字段來自多個表時,就會用到連線查詢 笛卡爾乘積現象 表1有m行,表2有n行,結果就有m n行 發生原因 沒有有效的連線條件 如何避免 新增有效的連線條件 分類 按功能分類 內連線 包括等值連線 非等值連線和自連線 外連線 包括左外連線 右外連線和全外連線 交叉連線 sel...
mysql學習 表內連線查詢
查詢兩個表中符合條件的共有記錄 內連線查詢效果圖 內連線查詢語法格式 select 字段 from 表1 inner join 表2 on 表1.欄位1 表2.欄位2 說明 inner join 就是內連線查詢關鍵字 on 就是連線查詢條件 在這裡我們先建立三個表分別是 student學生表,cou...
Mysql連表查詢(內連線 外連線)
建立兩張 並分別插入資料 create table ifnot exists left table id int auto increment,age int,name varchar 20 primary key id engine innodb default charset utf8 auto...