聯表查詢 內連線 外連線

2021-07-30 23:18:00 字數 2146 閱讀 8589

1.說明:聯表查詢可實現兩個或多個表之間的連線查詢,一般用於有主外來鍵關係表之間的連查詢,這裡拿兩個有主外來鍵關係的表來舉例說明聯表查詢的使用。

student表:其中classid為外來鍵

class表:

2.內連線查詢—查詢出學生的所有資訊

select * from student a,class b where a.classid = b.classid;
**說明:其中a和b是給表取得別名,方便後邊呼叫表中的屬性。

查詢結果如下:

內連線查詢特點:只查詢滿足條件的結果

3.左外連線查詢—查詢出學生的所有資訊

標準sql 92語法:left join 表名 on 條件

select * from student a left

join class b on a.classid = b.classid;

oracle(+)語法:左表字段 = 右表字段(+)

select * from student a,class b where a.classid = b.classid (+);
**說明:oracle(+)語法僅oracle資料庫支援,兩種查詢結果一樣

查詢結果如下:

左外連線特點:從查詢結果可以看出,查詢出來的不僅是滿足條件的結果,還包含左表student表中所有不滿足條件的結果,class表的資料以null顯示。

4.右外連線查詢:—查詢出學生的所有資訊

標準sql 92語法:right join 表名 on 條件

select * from student a right

join class b on a.classid = b.classid;

oracle(+)語法:左表字段(+) = 右表字段

select * from student a,class b where a.classid(+) = b.classid ;
**說明:oracle(+)語法僅oracle資料庫支援,兩種查詢結果一樣,注意oracle(+)語法中(+)的位置,左外連線時在 = 的右邊,右外連線時在 = 的左邊。

查詢結果如下:

右外連線特點:從結果可以看出,右外連線查詢結果不僅包含滿足條件的結果,還包含右表class中所有不滿足條件的結果,左表中的資料以null顯示。

5.完全外連線—查詢出學生的所有資訊

select * from student a full

outer

join class b on a.classid = b.classid;

**說明:mysql資料庫不支援完全外連線,oracle資料庫,其他資料庫沒有研究過,學習其他資料庫的可以試試。

完全外連線特點:查詢結果不僅包含滿足條件的結果,還包含左表中不滿足條件的所有結果,右表中的資料以null顯示,也包含右表中所有不滿足條件的結果,左表資料以null顯示。

—以上僅為個人學習心得,僅供參考。

聯表查詢 內連線 外連線

內連線 inner join 語句1 隱式的內連線,沒有inner join,形成的中間表為兩個表的笛卡爾積。select s.stuid,s.stuname,c.courseid,c.coursename from student as s,course as c where s.stuid c....

連表查詢(內連線,左外連線,右外連線)

用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...

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...