UNION 用法
假设连锁店想要增加毛利率超过 50%或者售价低于 800 的货物的存货量, 请使用 UNION 对分别满足上述两个条件的商品的查询结果求并集
SELECT product_id,product_name,product_type ,sale_price,purchase_price FROM PRODUCT WHERE sale_price<800 UNION SELECT product_id,product_name,product_type ,sale_price,purchase_price FROM PRODUCT WHERE sale_price>1.5*purchase_price;
复制代码
UNION 或者 OR 谓词
找出毛利率不足 30%或毛利率未知的商品。
SELECT * FROM Product WHERE sale_price < 1.3 *purchase_price OR sale_price IS NULL OR purchase_price IS NULL;
复制代码
SELECT * FROM Product WHERE sale_price < 1.3 *purchase_price UNIONSELECT * FROM Product WHERE sale_price IS NULL OR purchase_price IS NULL;
复制代码
包含重复行的集合运算 UNION ALL
SELECT product_id, product_name FROM Product UNION allSELECT product_id, product_name FROM Product1;
复制代码
商店决定对 product 表中利润低于 50% 或者 售价低于 1000 的商品提价, 请使用 UNION ALL 语句将分别满足上述两个条件的结果取并集.
SELECT * FROM Product WHERE sale_price < 1000 UNION SELECT * FROM Product WHERE sale_price < 1.5 * purchase_price
复制代码
inner join 交集
SELECT p1.product_id, p1.product_name FROM Product p1INNER JOIN Product1 p2ON p1.product_name=p2.product_name
复制代码
找出只存在于 Product 表但不存在于 Product1 表的商品。
SELECT * FROM Product WHERE product_name NOT IN (SELECT product_name FROM Product1)
复制代码
其他
找出 product 和 product2 中售价高于 500 的商品的基本信息。
借助对称差的实现方式, 求 product 和 product2 的交集。
SELECT * FROM Product WHERE product_name IN (SELECT product_name FROM Product1)UNION SELECT * FROM Product1 WHERE product_name IN (SELECT product_name FROM Product)
复制代码
评论