You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询合并两表数据并按Datetime排序获取指定结果?

解决方案:合并Deposits与Withdrawal表并按时间排序

你需要用UNION ALL来实现这个需求——JOIN是用来关联两个表的匹配行,而你要的是把两个表的记录作为独立行合并,缺失字段留空。直接看代码:

SELECT 
    Name,
    D_Currency,
    D_Amount,
    NULL AS W_Currency,
    NULL AS W_Amount,
    Datetime
FROM Deposits
UNION ALL
SELECT 
    Name,
    NULL AS D_Currency,
    NULL AS D_Amount,
    W_Currency,
    W_Amount,
    Datetime
FROM Withdrawal
ORDER BY Datetime ASC;

代码说明:

  • 第一个查询从Deposits表提取数据,把属于Withdrawal的字段用NULL填充,保证两个结果集的字段数量、类型一致
  • 第二个查询从Withdrawal表提取数据,同理填充Deposits相关字段为NULL
  • UNION ALL用来合并两个结果集(如果用UNION会自动去重,这里不需要,用ALL性能更优)
  • 最后通过ORDER BY Datetime ASC实现按时间从小到大排序

执行后得到的结果:

NameD_CurrencyD_AmountW_CurrencyW_AmountDatetime
MichaelUSD500NULLNULL2022-12-10 09:12:45
MichaelNULLNULLUSD5002022-12-11 09:55:32
JohnNULLNULLUSD3002022-12-13 13:33:43
JohnKRW7000NULLNULL2022-12-13 15:21:08
SusanJPY10000NULLNULL2022-12-15 12:34:11
SusanNULLNULLEUR8002022-12-17 11:23:45

内容的提问来源于stack exchange,提问作者j21chon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:10:27