本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎持续关注,有问题随时留言评论,一起探讨学习~
14 使用子查询
查询(query):
任何SQL语句都是查询,但该术语一般指SELECT语句。目前的SELECT语句是简单查询,即从单个数据库表中检索数据的单条语句。而子查询(subquery)是嵌套在其他查询中的查询。
例如:查找“小白熊”牌温奶器的商品有多少个。需要以下三步:
1.在品牌表brand找到“小白熊”的BrandId;
2.在品类表product_category找到温奶器的CategoryId;
3.在商品表product中COUNT对应BrandId和CategoryId的行数,即为结果。实际上,第1-2步可以嵌套在第三步的语句中。
SELECT ID
FROM brand
WHERE Name='小白熊';
SELECT ID
FROM product_category
WHERE Name='温奶器';
SELECT COUNT(*) AS num1
FROM product
WHERE BrandId=-9014347894162505346 AND CategoryId IN (492498760596997249, 615432733113008653);
#实际上,第1-2步可以嵌套在第三步的语句中。即为包含了子查询。
SELECT COUNT(*) AS num1
FROM product
WHERE BrandId=(SELECT ID
FROM brand
WHERE Name='小白熊') AND CategoryId IN (SELECT ID
FROM product_category
WHERE Name='温奶器');