欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
相关标签: 多表查询