SQL多表查詢方式


標量子查詢:返回一行一列的子查詢,相當於一個常數;在主查詢的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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章