SQL入門之1 select 聯接
內聯接外聯接全聯接join的用法
[@more@]
-- 笛卡爾連線 交叉連線
select title,name from books,publisher;
select title,name from books cross join publisher;
-- 相等連線 內連線
-- 常規用法
select title,name from books a,publisher b where a.pubid=b.pubid;
-- 有公共列,使用natural join 或者using
select title,name from books natural join publisher;
select title,name from books join publisher using (pubid);
-- 公共列名稱不同,使用on
select title,name from books b join publisher p on b.pubid=p.putid;
-- 不等連線
-- 按照範圍值進行匹配,關鍵是promotion中的範圍值不能有重疊
select title,gift from books,promotion where retail between minretail and maxretail;
select title,gift from books join promotion on retail between minretail and maxretail;
-- 自連線 根據介紹人ID,在同一表中查詢介紹人姓、名
-- 常規
select r.firstname,r.lastname,c.lastname referred
from customers c,customers r
where c.referred=r.customer#;
-- 使用 join
select r.firstname,r.lastname,c.lastname referred
from customers r join customers c
on c.referred=r.customer#;
-- 外連線 實質是在orders表不存在對應記錄時增加null來顯示
-- 把沒有下訂單的客戶也顯示出來,而不是僅顯示下訂單的客戶
-- 傳統方法
select lastname,firstname,order#
from customers c,orders o
where c.customer# =o.customer#(+)
order by c.customer#
;
--等效
-- 使用join
select lastname,firstname,order#
from customers c left outer join orders o
on c.customer# = o.customer#
order by c.customer#
;
--等效
select lastname,firstname,order#
from orders o right outer join customers c
on c.customer# = o.customer#
order by c.customer#
;
-- 全外連線 包括沒下訂單的客戶,也包括下訂單但不在客戶表中的訂單
select lastname,firstname,order#
from orders o full outer join customers c
on c.customer# = o.customer#
order by c.customer#
;
-- 包括下訂單但不在客戶表中的訂單
select lastname,firstname,order#
from customers c right outer join orders o
on c.customer# = o.customer#
order by c.customer#
;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-908198/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL入門之2 函式1SQL函式
- SQL入門之5 表的建立與修改1SQL
- SQL入門之6 sql*plusSQL
- 1、MySQL和SQL入門MySql
- SQL入門之11 DatabaseTransactionsSQLDatabase
- SQL入門之7 鎖SQL
- GreenDAO系列之(1)入門
- SQL入門之10 MERGESQL
- SQL入門之9使用defaultSQL
- 10.spark sql之快速入門SparkSQL
- SQL入門之3 函式2SQL函式
- 1 小時 SQL 極速入門(三)SQL
- 1 小時 SQL 極速入門(一)SQL
- 1 小時 SQL 極速入門(二)SQL
- Go 快速入門指南 - selectGo
- Python系列之-1、Django入門PythonDjango
- Flutter 入門指北(Part 1)之 DartFlutterDart
- 資料分析師之SQL入門SQL
- SQL入門之12 Read ConsistencySQL
- SQL 入門SQL
- 星閃:咫尺之間,聯接智慧世界
- HTML之小白的入門Day1HTML
- Rust入門系列之語言特性 - 1Rust
- sql入門之23 pivoting insert等SQL
- SQL入門之4 group by 與子查詢SQL
- SQL Server 2008 聯接篩選器SQLServer
- MongoDB入門系列(三):查詢(SELECT)MongoDB
- PL/SQL入門SQL
- sql*plus入門SQL
- MyBatis從入門到精通(二):MyBatis XML方式的基本用法之SelectMyBatisXML
- Three.js入門篇之1 - WebGL on HTMLJSWebHTML
- Scala 學習筆記(1)之入門篇筆記
- 解決一個.NET聯接SQL的問題 (轉)SQL
- ACM入門之新手入門ACM
- 瞭解巢狀迴圈聯接、合併聯接巢狀
- SQL入門基礎SQL
- SQL基礎入門SQL
- flask入門1Flask