mysql - #SQL - 比较不同的表并创建一个新表

标签 mysql sql sql-server database

我有 4 个表,其中包含不同的列,其中 ID 是所有 4 个表中的公共(public)值。在所有 4 个表中都有一个名为 EventDate 的列,但具有不同的值或相同 ID 的 NULL 值。新表应该只有 ID 和 EventDate。

我想根据 EventDate 比较所有 4 个表(即)如果两个表具有相同的日期,它应该将最小日期插入到新表中。

最佳答案

使用UNION ALL 合并所有并为每个 ID 取最小日期

SELECT ID, MIN(EventDate) AS MIN_DTE INTO NEW_TABLE FROM (
SELECT ID, EventDate from TABLE1
UNION ALL
SELECT ID, EventDate from TABLE2
UNION ALL
SELECT ID, EventDate from TABLE3
UNION ALL
SELECT ID, EventDate from TABLE4
)A
GROUP BY ID

关于mysql - #SQL - 比较不同的表并创建一个新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916829/

相关文章:

c# - EF 6.1 唯一可空索引

mysql - 如何用 Ruby 编写跨平台设置脚本

mysql - 没有子查询的 MySQL 中的条件左连接

java - Vaadin 应用程序与 MySQL 数据库

sql - rails : How to find_by a field containing a certain string

mysql - SQL循环依赖

sql - 在单个列中合并两个具有不同值的查询并优先考虑第一个查询的最佳方法是什么?

sql-server - SQL Server 使用查询计算运行总值

MySQL 导入行数在同一文件和数据库上不一致

php - 如何将图像从mysql放到php表格单元格中