您好,登錄后才能下訂單哦!
Mysql中怎么實現子查詢和聯合查詢,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
查詢:
在select查詢中,又嵌套了一個select查詢。一個是外層查詢,另一個是內層查詢。
Where子查詢
就是在where查詢語句有一個select語句,把內層查詢的結果當做外層查詢的條件。
From子查詢
在from 查詢語句中,有一個select語句,把內層查詢結果作為一張臨時表,供外層再一次查詢。
區別:
對于不是唯一取值的列,使用where子查可能會出現不正確的結果。如果用from,有分組的情況下,我們要通過排序把需要的記錄放在第一的位置上。
Exists
#查詢有商品的欄目
代碼如下 | 復制代碼 |
select cat_id,cat_name from category where cat_id in (select distinct cat_id from goods); |
我們還可以通過Exists 子查詢:
代碼如下 | 復制代碼 |
select cat_id,cat_name from category where exists (select * from goods where goods.cat_id = category.cat_id); |
執行過程:
它和前面我們講的where、from子查詢不同,where和from子查詢只執行一次,而exists子查詢要查詢多次(有多少行記錄就執行多少次)。
SQL UNION 操作符
UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法
代碼如下 | 復制代碼 |
SELECT column_name(s) FROM table_name1 |
注釋:默認地,UNION 操作符選取不同的值,即UNION是去了重的。如果允許重復的值,請使用 UNION ALL。
SQL UNION ALL 語法
代碼如下 | 復制代碼 |
SELECT column_name(s) FROM table_name1 |
另外,UNION 結果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。
UNION 指令的目的是將兩個 SQL 語句的結果合并起來。從這個角度來看, UNION 跟 JOIN 有些許類似,因為這兩個指令都可以由多個表格中擷取資料。union只是將兩個結果聯結起來一起顯示,并不是聯結兩個表
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。