MySQL--操作簡記(聯結表,組合查詢(UNION))
聯結表
1.建立聯結
SELECT vend_name,prod_name,prod_price
FROM vendors, products
WHERE vendors.vend_id = products.vend_id
- 1
- 2
- 3
上面的語句與之前最大的區別在於,指定的列位於兩張表內,使用where進行聯結。
返回表vendors與表products中vend_id相等的vend_name,prod_name,prod_price
基於兩個表之間的相等測試,這種聯結稱為等值聯結,或內部聯結。對於這種聯結,還可以使用下面這種語法:
- INNER JOIN
ON
SELECT vend_name,prod_name,prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id
- 1
- 2
- 3
2.聯結多個表
SELECT vend_name,prod_name,prod_price, quantity
FROM vendors, products, order
WHERE vendors.vend_id = products.vend_id
AND order.prod_id = products.vend_id
AND order_num = 20005;
- 1
- 2
- 3
- 4
- 5
FROM後跟多個表,WHERE子句條件用AND連線。
3.聯結的其他型別
- 自聯結:在select語句中不止一次引用相同的表
- 自然聯結:至少有一個列出現在不止一個表中
- 外部聯結:聯結包含了在相關表中沒有關聯行的行
組合查詢
執行多個查詢(多條SELECT語句),並將結果作為但個查詢結果集返回。
1.建立組合查詢
UNION
例如,我想查詢價格小於10 或供應商名字為a的id號,即下面的兩段語句怎麼同時實現
SELECT order_id, order_price, order_name
FROM order1
WHERE order_price < 10;
- 1
- 2
- 3
SELECT order_id, order_price, order_name
FROM order1
WHERE order_name = 'a';
- 1
- 2
- 3
使用union組合:
SELECT order_id, order_price, order_name
FROM order1
WHERE order_price < 10
UNION
SELECT order_id, order_price, order_name
FROM order1
WHERE order_name = 'a';
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.UNION規則
- 必須由兩條或兩條以上的select語句組成,每兩條之間用一個UNION分隔
- UNION中的每個查詢必須包含相同的列,表示式或聚集函式
- 列資料型別必須相容,型別不必完全相同,但必須是可以隱含轉換的型別
- 使用UNION滿足了條件後,可能會有條件滿足重複的,就會有重複,使用UNION ALL可以自動除去重複的行
3.對組合查詢結果排序
在使用UNION組合查詢時,只能使用一條ORDER BY子句,必須出現在最後一條SELECT語句之後
相關文章
- 組合查詢(UNION)
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- 查詢集合操作union與union all
- 資料庫學習(六)聯合查詢union資料庫
- MySQL--基礎知識點--65--組合查詢MySql
- MySQL 合併查詢union 查詢出的行合併到一個表中MySql
- SQL 三表聯合查詢SQL
- 按月分表聯合查詢
- SQL 兩個表組合查詢SQL
- 通過這次聯合 (union) 查詢瞭解 Laravel DB 的資料繫結Laravel
- union 聯合體
- MySQL入門系列:查詢簡介(七)之組合查詢MySql
- c語言中的結構(struct)和聯合(union)簡介(轉)C語言Struct
- 組合查詢 (轉)
- SQL多個表實現聯合查詢SQL
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- django 兩個表或多個表聯合查詢Django
- [冷楓推薦]:資料庫操作,內外聯查詢,分組查詢,巢狀查詢,交叉查詢,多表查詢,語句小結。資料庫巢狀
- [MYSQL -17]組合查詢MySql
- mysql求交集:UNION ALL合併查詢,inner join內連線查詢,IN/EXISTS子查詢MySql
- thinkPHP多表聯合查詢PHP
- SQL Server對組合查詢結果排序方法SQLServer排序
- [MySQL] - 聯表查詢,查詢一個不在另一個表的記錄MySql
- 詳解MySQL--慢查詢MySql
- mysql三表聯合查詢(員工表,部門表,工資表)MySql
- goldendate呼叫sql實現類似表聯合查詢GoSQL
- jpa動態查詢與多表聯合查詢
- sqlserver新增查詢 表、欄位註釋,組合查詢所有的使用者、表名、表註釋SQLServer
- MySQL聯結查詢和子查詢MySql
- JPA 之 多表聯合查詢
- 01-sql-聯合查詢SQL
- Mongodb 關聯表查詢MongoDB
- MySQL全面瓦解11:子查詢和組合查詢MySql
- ThinkPHP6 多模型關聯查詢操作記錄PHP模型
- 關聯查詢子查詢效率簡單比照
- Mysql-基本練習(09-刪除單表記錄、查詢指定列資料、列的別名、簡單單表條件查詢、簡單分組查詢)MySql
- 基於聯合查詢的注入
- 查詢表結構