查詢:
在select查詢中,又嵌套了一個select查詢。一個是外層查詢,另一個是內層查詢。
Where子查詢
就是在where查詢語句有一個select語句,把內層查詢的結果當做外層查詢的條件。
From子查詢
在from 查詢語句中,有一個select語句,把內層查詢結果作為一張臨時表,供外層再一次查詢。
區別:
對於不是唯一取值的列,使用where子查可能會出現不正確的結果。如果用from,有分組的情況下,我們要通過排序把需要的記錄放在第一的位置上。
Exists
#查詢有商品的欄目
代碼如下 復制代碼 select cat_id,cat_name from category where cat_id
我們還可以通過Exists 子查詢:
執行過程:
它和前面我們講的where、from子查詢不同,where和from子查詢只執行一次,而exists子查詢要查詢多次(有多少行記錄就執行多少次)。
SQL UNION 操作符
UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法
代碼如下 復制代碼SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注釋:默認地,UNION 操作符選取不同的值,即UNION是去了重的。如果允許重復的值,請使用 UNION ALL。
SQL UNION ALL 語法
代碼如下 復制代碼SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。
UNION 指令的目的是將兩個 SQL 語句的結果合並起來。從這個角度來看, UNION 跟 JOIN 有些許類似,因為這兩個指令都可以由多個表格中撷取資料。union只是將兩個結果聯結起來一起顯示,並不是聯結兩個表