本文爲本人學習書籍《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='溫奶器');