随笔 - 21  文章 - 0  评论 - 0  阅读 - 6157

mysql组合查询

多数SQL查询都只包含从一个或多个表返回数据的单条select语句。MYSQL也允许执行多个查询并将结果作为单个查询结果集返回。

两种基本情况,其中需要使用组合查询:

①在单个查询中从不同的表返回类似结构的数据。

②对单个表执行多个查询,按单个查询返回数据。

使用union

使用union来合并多个select语句的结果,会自动取消重复行,使用union all 不会取消重复行。

复制代码
-- 合并
-- 取商品价格在[1030]的物品,和供应商1002和1003提供的所有物品。
SELECT vendor_id, product_name, product_price FROM _products WHERE product_price > 10 AND product_price < 30
UNION
SELECT vendor_id, product_name, product_price FROM _products WHERE vendor_id IN (1002, 1003);

-- union all
SELECT vendor_id, product_name, product_price FROM _products WHERE product_price > 10 AND product_price < 30
UNION ALL
SELECT vendor_id, product_name, product_price FROM _products WHERE vendor_id IN (1002, 1003);
复制代码

 

 

 select语句的输出用order by字句来排序,在union组合查询时,只能使用一条order by语句,必须出现在最后一个select语句之后。

-- union all
SELECT vendor_id, product_name, product_price FROM _products WHERE product_price > 10 AND product_price < 30
UNION ALL
SELECT vendor_id, product_name, product_price FROM _products WHERE vendor_id IN (1002, 1003)
ORDER BY vendor_id, product_price;

 

posted on   博览天下with天涯海角  阅读(178)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示