将两个表中的两列合并(合并)到一个 SQL 查询中

2023-12-19

我有以下两个表,您也可以在SQL fiddle here http://www.sqlfiddle.com/#!9/70dba18/9:

## Sent Orders ##

    CREATE TABLE Send_Orders (
        Send_Date DATE,
        Product TEXT,
        FlowType TEXT
    );

    INSERT INTO Send_Orders
    (Send_Date, Product, FlowType)
    VALUES 
    ("2017-05-23", "Product A", "Send"),
    ("2018-09-10", "Product B", "Send"),
    ("2018-12-14", "Product B", "Send"),
    ("2019-01-03", "Product A", "Send"),
    ("2019-02-15", "Product C", "Send"),
    ("2017-09-04", "Product C", "Send"),
    ("2019-01-09", "Product A", "Send"),
    ("2019-02-16", "Product A", "Send"),
    ("2019-02-12", "Product A", "Send"),
    ("2019-02-15", "Product C", "Send"),
    ("2018-01-03", "Product B", "Send");


## Return Orders ##

    CREATE TABLE Return_Orders (
        Return_Date DATE,
        Product TEXT,
        FlowType TEXT
    );

    INSERT INTO Return_Orders
    (Return_Date, Product, FlowType)
    VALUES 
    ("2017-06-24", "Product A", "Return"),
    ("2018-07-11", "Product B", "Return"),
    ("2018-12-18", "Product B", "Return"),
    ("2019-02-01", "Product A", "Return"),
    ("2019-02-22", "Product C", "Return"),
    ("2017-10-18", "Product C", "Return"),
    ("2019-04-12", "Product A", "Return"),
    ("2019-02-19", "Product A", "Return"),
    ("2019-03-25", "Product A", "Return"),
    ("2019-04-19", "Product C", "Return"),
    ("2018-05-17", "Product B", "Return");

现在,我想运行查询并合并列Send_Date and Return_Date在名为的一列中Event_Date所以结果应该是这样的:

Event_Date      Product      FlowType
2017-05-23       Product A    Send
2017-06-24       Product A    Return
2018-09-10       Product B    Send
2018-07-11       Product B    Return
:                :            :
:                :            :
:                :            :

到目前为止,我可以连接两个表,但日期显示在两个单独的列中:

SELECT s.Send_Date, r.Return_Date, s.Product, s.FlowType
FROM Send_Orders s
JOIN Return_Orders r ON r.Product = s.Product
GROUP BY 1,2;

我需要在 SQL 中更改什么才能将它们合并到一列中?


SELECT Send_Date Event_Date, Product, FlowType FROM Send_Orders
UNION ALL
SELECT Return_Date, Product, FlowType FROM Return_Orders
ORDER BY 1,2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将两个表中的两列合并(合并)到一个 SQL 查询中 的相关文章

  • 是否可以将普通表与临时表进行左外连接?

    我创建 SQL Server 查询并有一个包含记录的普通表 另一方面有一个包含记录的临时表 该表不为空 并且所有字段都没有任何冲突 加入 可以连接这两个不同类型的表吗 SELECT NormalTable Entityname FROM N
  • golang sql 驱动程序的准备语句

    关于golang的sql driver 下面两条语句有什么区别 store DB is sql DB type rows err store DB Query SQL args err nil defer rows Close and st
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • PHP/MySQL - 在数据库中存储数组

    我正在开发一个 PHP 应用程序 它需要将各种设置存储在数据库中 客户经常询问是否可以添加或更改 删除某些内容 这导致了表格设计出现问题 基本上 我有很多布尔字段 它们只是指示是否为特定记录启用了各种设置 为了避免再弄乱表格 我正在考虑将数
  • 在表中添加新列,其值取决于同一表中另一列的值

    我是 Mysql 的新手 我想在表中添加一列 其值取决于同一个表中的另一个列值 例如我有company table如下 fldId companyName date 1 adeco 2012 01 12 2 mic 2001 03 09 3
  • 执行 mysqli->set_charset() 的永久方法?

    将我可以找到的字符集的所有配置文件和运行时选项设置为 utf 8 后 使用 php 建立的新 mysqli 连接的字符集仍然设置为 latin1 这实际上意味着我必须调用 mysqli gt set charset utf8 每次我连接 m
  • MySQL 列数据以逗号分隔列表形式返回

    我目前有一个 MySQL 表 例如 id friend 1 2 1 5 1 10 3 6 15 19 21 4 我试图获取某个特定用户的所有好友 ID 并将它们排列到一个以逗号分隔的列表中 例如 抓取了 user1 的好友 它将返回为 fr
  • 通过 SSH 隧道远程访问 MySQL 数据库

    我正在尝试编写 Java 程序来使用 ssh 隧道访问远程 mySQL 数据库 下面是我的代码 int lport 5656 int rport 3306 String rhost 111 222 333 444 String host 1
  • 恐慌:拨打 tcp 127.0.0.1:3306:连接:连接被拒绝

    我正在尝试使用 golang gin gorm 从 docker 连接 mysql 服务器 构建本身已经成功 但是如标题所示 出现了以下错误 panic dial tcp 127 0 0 1 3306 connect connection
  • mysql 和 hsqldb 兼容的 TEXT 字段

    我有一个使用 mysql 数据库的应用程序 但我想在 hsqldb 内存数据库中运行该应用程序的单元测试 问题是我的一些持久模型对象具有我注释为columnDefinition TEXT 的字段 以强制mysql满足长字符串值 但现在hsq
  • 数据库字段中的空白不会被trim()删除

    我在 MySQL 的文本字段的段落开头有一些空格 Using trim var text field 在 PHP 中或TRIM text field MySQL 中的语句绝对不执行任何操作 这个空白可能是什么以及如何通过代码删除它 如果我进
  • 检查行中是否有单调递增的值

    我正在寻找一种方法来检查表中的值是否针对特定的行子集单调递增 该表包含列 id name meas date 和 value 对于具有相同名称的所有行 应按 meas date 对行进行排序 并且需要检查这些排序行的值列是否单调递增 因此
  • 如何使用 php 命令使注册表单高度安全?

    我想让代码对用户来说真正安全 下面的代码显示了 php 代码 我已将其用于我的网站 现在我已经使用了一些验证 例如密码和重复密码必须匹配 并且用户必须输入所有字段 为了使其更安全 我想插入安全命令 例如 PDO mysqli crypto
  • 用户“root”@“localhost”的访问被拒绝

    我正在尝试从数据库中获取记录 但我面临这个访问被拒绝的问题 我尝试了 Stack Overflow 上提到的其他解决方案 例如向用户授予权限 但没有任何效果 访问数据库的代码 public void service HttpServletR
  • 如何为基于服务的数据库设置自动增量

    我在这里开始构建我的第一个本地数据库 基于服务的数据库 使用文本框将行写入基于服务的数据库 https stackoverflow com questions 39152801 write line to service based dat
  • 更改 MySQL 中的列名称 [重复]

    这个问题在这里已经有答案了 搜索后我不知道我需要在 ALTER TABLE 中做什么genres更改列id to genre id有任何想法吗 alter table genres change id genre id int 10 aut
  • (mysql, php) 如何在插入数据之前获取auto_increment字段值?

    我正在将图像文件上传到存储服务器 在上传之前 我应该编写文件名 其中包含自动增量值 例如 12345 filename jpg 在插入数据库之前如何获取自动增量值 我只看到一种解决方案 插入空行 获取其自增值 删除这一行 使用 p 1 中的
  • MYSQL 语法在存在 NULL 时不评估不等于

    我在 mysql 查询时遇到问题 我想排除 2 的值 所以我想我会执行以下操作 table products id name backorder 1 product1 NULL 2 product2 NULL 3 product3 2 SE
  • 将 1 添加到字段

    如何将以下 2 个查询变成 1 个查询 sql SELECT level FROM skills WHERE id id LIMIT 1 result db gt sql query sql level int db gt sql fetc
  • 重命名 MySQL 中的表

    重命名表在 MySQL 中不起作用 RENAME TABLE group TO member 错误信息是 1064 You have an error in your SQL syntax check the manual that cor

随机推荐