多表查询
一、标量子查询
SELECT m.sale_price FROM milk_tea AS m WHERE m.prod_name='奶茶';
SELECT *
FROM milk_tea AS m1
WHERE m1.sale_price> (
SELECT m.sale_price
FROM milk_tea AS m
WHERE m.prod_name='奶茶');
SELECT m1.*, (SELECT m.sale_price
FROM milk_tea AS m
WHERE m.prod_name='奶茶')
FROM milk_tea AS m1;
SELECT p.class,AVG(p.sale_price)
FROM prod_info AS p
GROUP BY class
HAVING AVG(p.sale_price) > 15;
SELECT p.class,AVG(p.sale_price)
FROM prod_info AS p
GROUP BY class
HAVING AVG(p.sale_price) > (SELECT m.sale_price
FROM milk_tea AS m
WHERE m.prod_name='奶茶') ;
SELECT AVG(p.sale_price)
FROM prod_info AS p
WHERE p.class='日用品'; ---34.96
SELECT *
FROM prod_info AS P1
WHERE p1.class='日用品'
AND p1.sale_price >( SELECT AVG(p.sale_price)
FROM prod_info AS p
WHERE p.class='日用品');
二、关联子查询
SELECT *
FROM prod_info AS P1
WHERE p1.sale_price >(#关联子查询
SELECT AVG(p.sale_price)
FROM prod_info AS p
WHERE p.class=p1.class);
三、普通子查询
SELECT m.prod_name FROM milk_tea AS m WHERE m.sale_price= 15;
SELECT * FROM milk_tea AS m WHERE m.prod_name IN('奶茶','薯片','薯条');
SELECT *
FROM milk_tea AS m
WHERE m.prod_name IN(
SELECT m1.prod_name
FROM milk_tea AS m1
WHERE m1.sale_price= 15);
SELECT p.prod_name, p.type, p.sale_price FROM prod_info AS p WHERE p.prod_name='抽纸';
SELECT b.type
FROM ( #将选出的三列作为新的目标表
SELECT p.prod_name, p.type, p.sale_price FROM prod_info AS p
WHERE p.prod_name='抽纸')
AS b WHERE b.sale_price > 26;
四、表联结
关联多个表,在一行中输出。
(一)内部联结
SELECT *FROM prod_info AS p ;
SELECT * FROM supplier_info AS s;
SELECT p.*, s.*
FROM prod_info AS p, supplier_info AS s
WHERE p.supplier_id= s.supplier_id;
(二)自联结
SELECT p.*
FROM prod_info AS p, order_list AS l
WHERE p.prod_id=l.prod_id
AND l.order_id='20190403001';
SELECT p.*
FROM prod_info AS p INNER JOIN order_list AS l
ON p.prod_id=l.prod_id
AND l.order_id='20190403001';
(三)外部联结
SELECT * FROM cust_info AS c;
SELECT * FROM order_list AS l WHERE l.order_id LIKE '20190407%';
SELECT c.*,l.*
FROM cust_info AS c LEFT JOIN order_list AS l
ON c.cust_id=l.cust_id
AND l.order_id LIKE '20190407%';
INNER JOIN 相当于并集
OUTER JOIN 相当于交集
五、组合查询 UNION