[MYSQL -16]建立高階聯結
1、使用表別名
縮短SQL語句;
允許在單條SELECT語句中多次使用相同的表
表別名只在查詢執行使用中使用。與列別名不一樣,表別名不返回到客戶機。
select cust_name,cust_contact
from customers as c,orders as o,orderitems as oi
where c.cust_id = o.cust_id
and oi.order_num= o.order_num
and prod_id='TNT2';
2、自聯結
單條SELECT語句中不止一次引用相同的表。
- 子查詢
select prod_id,prod_name
from products
where vend_id=(select vend_id from products where prod_id='DTNTR');
- 自聯結
select prod_id,prod_name
from products as p1,products as p2
where p1.vend_id=products.vend_id
and products.prod_id='DTNTR';
自聯結通常作為外部語句用來替代從相同表中檢索資料時使用的子查詢語句。雖然與子查詢結果是相同的,但有時候比子查詢快的多。
3、自然聯結
只能選擇那些唯一的列,通過對錶使用萬用字元(SELECT *),對所有其他表的列使用明確地子集來完成。自然聯結排除多次出現,每個列只返回一次。
select c.*,o.order_num,o.order_date,oi.prod_id,oi.quantity,oi.item_price
from customers as c,orders as o,orderitems as oi
where c.cust_id=o.cust_id
and oi.order_num=o.order_num
and prod_id='FB';
該例項中,萬用字元只對第一個表使用。所有其他列明確列出,所以沒有重複的列被檢索出來。
4、外部聯結
聯結都是一個表中的行與另一個表中的行相關聯。但有時候需要包含那些沒有關聯行的那些行。
- LEFT OUTER JOIN ON
- RIGHT OUTER JOIN ON
select customers.cust_id,orders.order_num
from customers left outer join orders
on customers.cust_id=orders.cust_id;
LEFT表示包含其所有行的表(LEFT指出的是OUTER JOIN左邊的表)。
5、使用聚集函式的聯結
select customers.cust_name,
customers.cust_id,
count(orders.order_num) as num_ord
from customers inner join orders
on customers.cust_id=orders.cust_id
group by customers.cust_id;
相關文章
- [MYSQL -15]建立聯結MySql
- MySQL高階特性——繫結變數MySql變數
- MYSQL 高階MySql
- MySQL高階MySql
- mysql高階特性MySql
- shell高階-----建立函式函式
- MySQL 高階優化MySql優化
- MySQL系列-- 5. MySQL高階特性MySql
- MySQL 高階特性篇教程MySql
- MySQL高階篇筆記MySql筆記
- Mysql高階優化(一)MySql優化
- Mysql高階優化(二)MySql優化
- 四種聯結方法——《Oracle SQL 高階程式設計》筆記1OracleSQL程式設計筆記
- React高階元件總結React元件
- 高階複製總結
- MySQL 優化一(高階篇)MySql優化
- MySQL 優化(二)(高階篇)MySql優化
- MySQL高階知識——Show ProfileMySql
- MySQL高階(3)-效能分析ExplainMySqlAI
- mysql高階查詢語句MySql
- Mysql高階最佳化(一)MySql
- MySql 學習之路-高階2MySql
- Java高階教程 - 建立和銷燬物件Java物件
- MySQL之表聯結MySql
- Kotlin進階(二)中綴、內聯、高階函式Kotlin函式
- PHP高階語法總結PHP
- mybatis高階結果對映MyBatis
- [MS SQL]高階SQL總結SQL
- mysql 建立和刪除聯合索引MySql索引
- Mysql知識樹整理【3】 ---高階MySql
- MySQL高階部分-建表語句MySql
- MySQL高階學習筆記(二)MySql筆記
- MySQL高階12-事務原理MySql
- 「 MySQL高階篇 」MySQL索引原理,設計原則MySql索引
- PHP物聯網高階開發內推PHP
- MySQL建立表的時候建立聯合索引的方法MySql索引
- Kafka聯結器建立資料管道Kafka
- Excel聯手PrintFolder 建立連結表Excel