国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

詳細講述MySQL中的子查詢操作

2024-07-24 12:46:18
字體:
來源:轉載
供稿:網友

繼續做以下的前期準備工作:

    新建一個測試數據庫TestDB;

   

create database TestDB;

    創建測試表table1和table2;

CREATE TABLE table1 ( customer_id VARCHAR(10) NOT NULL, city VARCHAR(10) NOT NULL, PRIMARY KEY(customer_id) )ENGINE=INNODB DEFAULT CHARSET=UTF8; CREATE TABLE table2 ( order_id INT NOT NULL auto_increment, customer_id VARCHAR(10), PRIMARY KEY(order_id) )ENGINE=INNODB DEFAULT CHARSET=UTF8;

    插入測試數據;

INSERT INTO table1(customer_id,city) VALUES('163','hangzhou'); INSERT INTO table1(customer_id,city) VALUES('9you','shanghai'); INSERT INTO table1(customer_id,city) VALUES('tx','hangzhou'); INSERT INTO table1(customer_id,city) VALUES('baidu','hangzhou'); INSERT INTO table2(customer_id) VALUES('163'); INSERT INTO table2(customer_id) VALUES('163'); INSERT INTO table2(customer_id) VALUES('9you'); INSERT INTO table2(customer_id) VALUES('9you'); INSERT INTO table2(customer_id) VALUES('9you'); INSERT INTO table2(customer_id) VALUES('tx');

    準備工作做完以后,table1和table2看起來應該像下面這樣:

mysql> select * from table1; +-------------+----------+ | customer_id | city | +-------------+----------+ | 163 | hangzhou | | 9you | shanghai | | baidu | hangzhou | | tx | hangzhou | +-------------+----------+ 4 rows in set (0.00 sec) mysql> select * from table2; +----------+-------------+ | order_id | customer_id | +----------+-------------+ | 1 | 163 | | 2 | 163 | | 3 | 9you | | 4 | 9you | | 5 | 9you | | 6 | tx | +----------+-------------+ 7 rows in set (0.00 sec)

準備工作做的差不多了,開始今天的總結吧。
一個問題

現在需要查詢所有杭州用戶的所有訂單號,這個SQL語句怎么寫?首先,你可以這么寫:

select table2.customer_id, table2.order_id from table2 join table1 on table1.customer_id=table2.customer_id where table1.city='hangzhou';

能實現我們需要的結果。但是,我們也可以這么寫:

select customer_id, order_id from table2 where customer_id in (select customer_id from table1 where city='hangzhou');

呃?在()括號中的的select語句是什么?問題來了,這到底是什么語法,怎么也可以完成任務,那么這篇博文就圍繞著這個問題開始展開。
啥是子查詢

簡單的說,子查詢就是:

201541491747213.png (875×250)

如上圖所示,子查詢,有叫內部查詢,相對于內部查詢,包含內部查詢的就稱為外部查詢。子查詢可以包含普通select可以包括的任何子句,比如:distinct、group by、order by、limit、join和union等;但是對應的外部查詢必須是以下語句之一:select、insert、update、delete、set或者do。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平凉市| 尉氏县| 咸丰县| 奇台县| 泊头市| 旬阳县| 怀仁县| 柳林县| 瓦房店市| 邮箱| 石狮市| 惠水县| 南溪县| 镇远县| 喜德县| 乐东| 通许县| 闻喜县| 台北县| 安多县| 项城市| 饶阳县| 青田县| 岐山县| 恩平市| 芒康县| 汶川县| 开阳县| 南阳市| 永丰县| 临安市| 泰和县| 通榆县| 莱芜市| 金山区| 罗平县| 盐津县| 周至县| 伊宁市| 丘北县| 江孜县|