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

MySQL中如何合并同结构tbwinner与tbloser表并按ID排序展示?

解决方法

你的问题出在使用了INNER JOIN——这是用来关联两个表的匹配数据,而非合并两个表的结果集。另外你的SQL里还存在表名(tblpvdeleted、tblpv)和字段名(PVDate)的错误,这些都导致结果不符合预期。

要合并两个表的指定日期数据并按ID排序,应该使用UNION ALL,它能直接拼接两个查询的结果集:

SELECT ID, Date, Name, Points, Result, 'tbloser' AS 来源表
FROM tbloser
WHERE Date = '2023-01-09'
UNION ALL
SELECT ID, Date, Name, Points, Result, 'tbwinner' AS 来源表
FROM tbwinner
WHERE Date = '2023-01-09'
ORDER BY ID ASC;

说明:

  • UNION ALL会保留两个表的所有符合条件的行,包括重复ID的记录(和你的示例一致)
  • 添加来源表字段是为了明确每条数据来自哪个表,和你示例里的注释对应,不需要的话可以去掉该字段
  • 分别对两个表添加WHERE Date = '2023-01-09'筛选指定日期的数据
  • 最后用ORDER BY ID ASC实现按ID升序排列

如果不需要区分来源表,也可以简化成:

SELECT *
FROM tbloser
WHERE Date = '2023-01-09'
UNION ALL
SELECT *
FROM tbwinner
WHERE Date = '2023-01-09'
ORDER BY ID ASC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:55:41