SQL多表查询
程序员文章站
2022-05-29 21:30:11
...
标量子查询:返回一行一列的子查询,相当于一个常数;在主查询的WHERE或SELECT或HAVING后。
关联子查询:返回一列数据,子查询的结果与主查询的目标列存在一定关联;在主查询WHERE后。
普通子查询:返回一列数据,将子查询的列作为主查询的取值范围;在主查询WHERE后,常与IN配套使用。
内联结:INNER JOIN…ON…;
外联结:左外联结LEFT OUTER JOIN…ON…;右外联结RIGHT OUTER JOIN…ON…;全联结FULL OUTER JOIN…ON…
标量子查询
-- 所有洁云牌抽纸的销售流水
SELECT * FROM order_list WHERE prod_id IN (SELECT prod_id FROM prod_info WHERE prod_name = '抽纸' AND brand = '洁云');
关联子查询
-- 各类商品中,价格高于该类商品均价的部分
SELECT p1.* FROM prod_info AS p1 WHERE sale_price > (SELECT AVG(sale_price) FROM prod_info AS p2 WHERE p1.class = p2.class GROUP BY class);
内联结
-- -- 所有洁云牌抽纸的销售流水
SELECT * FROM prod_info AS p INNER JOIN order_list AS l ON p.prod_name = '抽纸' AND p.brand = '洁云' AND p.prod_id = l.prod_id;
右外联结
-- 所有商品的销量
SELECT p.*, SUM(l.quantity) AS 销售量 FROM order_list AS l RIGHT OUTER JOIN prod_info AS p ON l.prod_id = p.prod_id GROUP BY p.prod_id;
上一篇: 溥仪宣布退位之后 升允一直都在策划复辟清王朝的统治
下一篇: MySQL的深入浅出(一)