首页 > 数据库 >mysql用视图union多表

mysql用视图union多表

时间:2024-03-22 13:46:21浏览次数:20  
标签:refund 多表 union xfc 视图 id fund NULL order

订单表xfc_order

DROP TABLE IF EXISTS `xfc_order`;
CREATE TABLE `xfc_order` (
  `order_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `order_code` varchar(32) NOT NULL COMMENT '订单号',
  `pay_time` int(11) unsigned NOT NULL COMMENT '付款时间',
  `pay_amount` decimal(12,0) unsigned NOT NULL COMMENT '支付金额',
  PRIMARY KEY (`order_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of xfc_order
-- ----------------------------
INSERT INTO `xfc_order` VALUES ('2', '12345678', '1711050019', '100');
INSERT INTO `xfc_order` VALUES ('3', '12345678', '1711050019', '200');

  退款表xfc_refund

DROP TABLE IF EXISTS `xfc_refund`;
CREATE TABLE `xfc_refund` (
  `ref_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `order_id` int(11) unsigned NOT NULL COMMENT '订单id',
  `refund_amount` decimal(12,0) unsigned NOT NULL COMMENT '退款金额',
  `verify_time` int(11) unsigned NOT NULL COMMENT '审核时间',
  `ref_status` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '-2拒绝-1待审核1通过',
  PRIMARY KEY (`ref_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of xfc_refund
-- ----------------------------
INSERT INTO `xfc_refund` VALUES ('1', '2', '80', '1711079019', '1');
INSERT INTO `xfc_refund` VALUES ('2', '3', '180', '1711079019', '1');

  创建现金流视图xfc_refund

CREATE VIEW fund_info AS
(
SELECT order_id,1 fund_type,pay_amount fund_amount,pay_time fundtime FROM `xfc_order` o WHERE o.pay_time>0 )
 UNION  ALL
(SELECT r.order_id,2 fund_type,r.refund_amount fund_amount,r.verify_time fundtime FROM `xfc_refund` r WHERE r.ref_status=1
);

  SELECT * FROM fund_info;

返回的结果是同一订单一条支付成功一条退款成功的集合,就是订单的交易流水。

mysql> SELECT * FROM fund_info;
+----------+-----------+-------------+------------+
| order_id | fund_type | fund_amount | fundtime   |
+----------+-----------+-------------+------------+
|        2 |         1 |         100 | 1711050019 |
|        3 |         1 |         200 | 1711050019 |
|        2 |         2 |          80 | 1711079019 |
|        3 |         2 |         180 | 1711079019 |
+----------+-----------+-------------+------------+
4 rows in set (0.01 sec)

  

 

标签:refund,多表,union,xfc,视图,id,fund,NULL,order
From: https://www.cnblogs.com/tochw/p/18089290

相关文章

  • 【测试开发学习历程】MySQL增删改操作 + 备份与还原 + 索引、视图、存储过程
    前言:SQL内容的连载,到这里就是最后一期啦!如果有小伙伴要其他内容的话,我会追加内容的。(前提是我有学过,或者能学会)接下来,我们就要开始python内容的学习了~~ 目录1 MySQL增删改操作1.1数据添加操作1.1.1插入完整的行1.1.2插入多行1.2数据更新操作1.3数据删除操......
  • 2、URL和视图的映射
    fromflaskimportFlask,requestapp=Flask(__name__)#url的组成部分:http[80]/https[443]://www.qq.com:443/path#默认的http协议使用的是80端口,https协议使用的是443端口.#当我们输入www.qq.com时,实际浏览器会处理加上443端口#url与视图:path与视图@app.route("/")d......
  • MySQL 视图、事件、函数、储存过程
    正文视图https://blog.csdn.net/moxigandashu/article/details/63254901事件(类似定时任务)https://zhuanlan.zhihu.com/p/450454992函数https://www.cnblogs.com/zhangminghui/p/4113160.html储存过程(处理复杂逻辑)https://blog.csdn.net/whf_a/article/details/114871866......
  • 【11.0】Django框架之视图层
    【一】三板斧【1】HttpResponseHttpResponse是Django中用于创建HTTP响应对象的类,它允许你构建并返回服务器对客户端请求的数据和状态。当需要直接返回纯文本数据(如JSON格式的数据)或者HTML页面时,可以使用HttpResponse。fromdjango.httpimportHttpResponsedef......
  • MyBatisPlus怎么多表关联查询?
    在MyBatisPlus中进行多表关联查询通常需要自定义SQL语句,因为MyBatisPlus的默认方法主要是针对单表操作。你可以在Mapper接口中定义自定义查询方法,并使用@Select注解编写SQL语句。以下是一个简单的例子,假设我们有两个表user和order,我们想要查询用户及其订单信息:定义User和Or......
  • 【SQL】1907. 按分类统计薪水(IF语句;CASE 语句;UNION)
    前述知识点回顾:casewhenthenelseendMysql:条件判断函数-CASEWHEN、IF、IFNULL详解题目描述leetcode题目:1907.按分类统计薪水1.写法一:if语句select'LowSalary'ascategory,sum(if(income<20000,1,0))asaccounts_countfromAccountsuni......
  • mysql 存储过程 视图 理解参考
    存储过程(StoredProcedure): 存储过程是一组预编译的SQL语句和控制结构的集合,类似于程序中的子例程或函数。存储过程可以接受参数,并且可以在执行过程中进行条件判断、循环和其他逻辑控制。存储过程通常用于封装和重用复杂的数据库操作,可以执行一系列的SQL语句,进行数据处理、业......
  • 在WF14视图中调用扩展字段
    @*输出引用*@@injectSiteExtendFieldServiceSiteExtendFieldService@Power.VisualizationView(new{Area="FulltextSearch",Action="AdvancedSearch"})@{varsiteList=SiteService.GetSiteList();varextendField=SiteExtendField......
  • LabVIEW多表位数字温湿度计图像识别系统
    LabVIEW多表位数字温湿度计图像识别系统解决数字温湿度计校准过程中存在的大量需求和长时间校准问题,通过LabVIEW开发平台设计了一套适用于20多个表位的数字温度计图像识别系统。该系统能够通过图像采集、提取和处理,进行字符训练,从而实现对不同型号数字温湿度计的温度和湿度字......
  • MogDB-openGauss视图与物化视图
    MogDB/openGauss视图与物化视图一个数据库通常分成外模式、模式和内模式三种模式:外模式:也叫用户模式,是用户所能访问的一组数据视图,和某一应用的逻辑结构有关,是从模式中导出的一个子集,针对某一具体应用控制访问的可见性。模式:数据库内所包含的逻辑结构,包括基本表的定义等。内......