MySQL中怎么實(shí)現(xiàn)子查詢和聯(lián)合查詢,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)專(zhuān)注于石拐網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供石拐營(yíng)銷(xiāo)型網(wǎng)站建設(shè),石拐網(wǎng)站制作、石拐網(wǎng)頁(yè)設(shè)計(jì)、石拐網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造石拐網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供石拐網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
查詢:
在select查詢中,又嵌套了一個(gè)select查詢。一個(gè)是外層查詢,另一個(gè)是內(nèi)層查詢。
Where子查詢
就是在where查詢語(yǔ)句有一個(gè)select語(yǔ)句,把內(nèi)層查詢的結(jié)果當(dāng)做外層查詢的條件。
From子查詢
在from 查詢語(yǔ)句中,有一個(gè)select語(yǔ)句,把內(nèi)層查詢結(jié)果作為一張臨時(shí)表,供外層再一次查詢。
區(qū)別:
對(duì)于不是唯一取值的列,使用where子查可能會(huì)出現(xiàn)不正確的結(jié)果。如果用from,有分組的情況下,我們要通過(guò)排序把需要的記錄放在第一的位置上。
Exists
#查詢有商品的欄目
代碼如下 | 復(fù)制代碼 |
select cat_id,cat_name from category where cat_id in (select distinct cat_id from goods); |
我們還可以通過(guò)Exists 子查詢:
代碼如下 | 復(fù)制代碼 |
select cat_id,cat_name from category where exists (select * from goods where goods.cat_id = category.cat_id); |
執(zhí)行過(guò)程:
它和前面我們講的where、from子查詢不同,where和from子查詢只執(zhí)行一次,而exists子查詢要查詢多次(有多少行記錄就執(zhí)行多少次)。
SQL UNION 操作符
UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。
請(qǐng)注意,UNION 內(nèi)部的 SELECT 語(yǔ)句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類(lèi)型。同時(shí),每條 SELECT 語(yǔ)句中的列的順序必須相同。
SQL UNION 語(yǔ)法
代碼如下 | 復(fù)制代碼 |
SELECT column_name(s) FROM table_name1 |
注釋?zhuān)耗J(rèn)地,UNION 操作符選取不同的值,即UNION是去了重的。如果允許重復(fù)的值,請(qǐng)使用 UNION ALL。
SQL UNION ALL 語(yǔ)法
代碼如下 | 復(fù)制代碼 |
SELECT column_name(s) FROM table_name1 |
另外,UNION 結(jié)果集中的列名總是等于 UNION 中第一個(gè) SELECT 語(yǔ)句中的列名。
UNION 指令的目的是將兩個(gè) SQL 語(yǔ)句的結(jié)果合并起來(lái)。從這個(gè)角度來(lái)看, UNION 跟 JOIN 有些許類(lèi)似,因?yàn)檫@兩個(gè)指令都可以由多個(gè)表格中擷取資料。union只是將兩個(gè)結(jié)果聯(lián)結(jié)起來(lái)一起顯示,并不是聯(lián)結(jié)兩個(gè)表
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。