內聯,左外聯,右外聯,全連線,交叉連線 的區別
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
連線分為:內連線、外連線、交叉連線
一、內連線——最常用
定義:僅將兩個表中滿足連線條件的行組合起來作為結果集。
在內連線中,只有在兩個表中匹配的行才能在結果集中出現
關鍵詞:INNER JOIN
格式:SELECT 列名錶 FROM 表名1 [INNER] JOIN 表名2 ON或WHERE 條件表示式
說明:
(1)列名錶中的列名可以出自後面的兩個表,但如果兩個表中有同名列,應在列名前標明出處,格式為:表名.列名
(2)若連線的兩個表名字太長,可以為它們起個別名。 格式為:表名 AS 別名
(3)INNER是預設方式,可以省略
eg:
select *
from t_institution i
inner join t_teller t
on i.inst_no = t.inst_no
where i.inst_no = "5801"
其中inner可以省略。
等價於早期的連線語法
select *
from t_institution i, t_teller t
where i.inst_no = t.inst_no
and i.inst_no = "5801"
二、外連線
1、左(外)連線
定義:在內連線的基礎上,還包含左表中所有不符合條件的資料行,並在其中的右表列填寫NULL
關鍵字:LEFT JOIN
eg:
select *
from t_institution i
left outer join t_teller t
on i.inst_no = t.inst_no
其中outer可以省略。
注意:
當在內連線查詢中加入條件是,無論是將它加入到join子句,還是加入到where子句,其效果是完全一樣的,但對於外連線情況就不同了。當把條件加入到 join子句時,SQLServer、Informix會返回外連線表的全部行,然後使用指定的條件返回第二個表的行。如果將條件放到where子句 中,SQLServer將會首先進行連線操作,然後使用where子句對連線後的行進行篩選。下面的兩個查詢展示了條件放置位子對執行結果的影響:
條件在join子句
select *
from t_institution i
left outer join t_teller t
on i.inst_no = t.inst_no
and i.inst_no = “5801”
結果是:
inst_no inst_name inst_no teller_no teller_name
5801 天河區 5801 0001 tom
5801 天河區 5801 0002 david
5802 越秀區
5803 白雲區
條件在where子句
select *
from t_institution i
left outer join t_teller t
on i.inst_no = t.inst_no
where i.inst_no = “5801”
結果是:
inst_no inst_name inst_no teller_no teller_name
5801 天河區 5801 0001 tom
5801 天河區 5801 0002 david
2、右(外)連線
定義:在內連線的基礎上,還包含右表中所有不符合條件的資料行,並在其中的左表列填寫NULL
關鍵字:RIGHT JOIN
3、完全連線
定義:在內連線的基礎上,還包含兩個表中所有不符合條件的資料行,並在其中的左表、和右表列填寫NULL
關鍵字:FULL JOIN
三、交叉連線
定義:將兩個表的所有行進行組合,連線後的行數為兩個表的乘積數。(笛卡爾積)
關鍵詞:CROSS JOIN
格式:FROM 表名1 CROSS JOIN 表名2
四, 自身連線
自身連線是指同一個表自己與自己進行連線。這種一元連線通常用於從自反關係(也稱作遞迴關係)中抽取資料。例如人力資源資料庫中僱員與老闆的關係。
下面例子是在機構表中查詢本機構和上級機構的資訊。
select s.inst_no superior_inst, s.inst_name sup_inst_name, i.inst_no, i.inst_name
from t_institution i
join t_institution s
on i.superior_inst = s.inst_no
結果是:
superior_inst sup_inst_name inst_no inst_name
800 廣州市 5801 天河區
800 廣州市 5802 越秀區
800 廣州市 5803 白雲區
給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow
相關文章
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- 內連線、左連線、右連線
- mysql INNER JOIN、LEFT JOIN、RIGHT JOIN;內連線(等值連線)、左連線、右連線MySql
- sql 內連線和外連線SQL
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- 外連線有 OR 關聯條件只能走 NL優化優化
- Mysql——內外連線,事物,索引MySql索引
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- CiGA Connects聯手CRI TechSummit打造年度級遊戲行業大會,線上線下B2B展區連線海內外MIT遊戲行業
- 聯想無線滑鼠怎麼連線電腦連線藍芽藍芽
- MySQL筆記-左連線的使用(left join有關聯的多表查詢)MySql筆記
- mysql外連線有哪些型別MySql型別
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- 內外網同時連線解決
- Winodws同時連線內網和外網內網
- 物聯網應用的蜂窩eSIM連線
- 關聯線探究,如何連線流程圖的兩個節點流程圖
- SQL改寫系列九:外連線轉內連線的常見場景與錯誤SQL
- 物聯網6類技術無線連線技術的分析
- 聯絡中心滿足更多連線客戶的需求
- SQL改寫系列九:外連線轉內連線的常見場景與錯誤-2SQL
- LAN連線和WAN連線有什麼區別?
- MySQL連線控制外掛介紹MySql
- vue 省市區三級聯動外掛Vue
- Oracle11g ORA-03135: 連線失去聯絡Oracle
- 使用阿里云云聯結器 cciot 連線到 EMQX Cloud阿里MQCloud
- WIN 10英雄聯盟無法連線網路如何處理_WIN 10英雄聯盟老是無法連線網路解決方法
- 聯想膝上型電腦無線網路連線不可用
- PostgreSQL優化案例之 反連線與外連線等價改寫SQL優化
- 機械行業ERP系統生產委外管理:內外無縫連線行業
- 阿里雲:面向5G時代的物聯網無線連線服務阿里
- 關於外連線和where條件
- 無法連線java visualvm外掛中心JavaLVM
- Vmware虛擬機器連線外網虛擬機
- 三大運營商搶奪物聯網市場中國聯通物聯網連線數突破5000萬
- django 內建server 外網不能訪問, 報連線超時DjangoServer
- sql語句左連結left join--3張表關聯SQL