MySQL数据库查询,有两张表字段不同,怎么这两表的数据统计在一起然后按照时间排序

假如我有两张表A和B

A的字段有a1, a2, update_time

有两条记录

B的字段有b1, b2, update_time

有三条条记录

然后我希望将这两张表的数据合在一起查询

希望得到的结果为

a1a2b1b2update_time
记录 1单元 2单元 2单元 2单元 2
记录 2单元 3单元 2单元 2单元 2
记录 3单元 3单元 2单元 2单元 2
记录 4单元 3单元 2单元 2单元 2
记录 5单元 3单元 2单元 2单元 2

将这些结果按照update_time 排序请问如何实现?

6月11日重新补充

我现在有两张表

code_tasktask_version

如果是单表查询

我从code_task查出10条数据

select id, title, update_date from code_task ORDER BY update_date DESC limit 0, 10

我从update_date查出5条数据

select version, code, update_date from task_version ORDER BY update_date DESC limit 0, 5

我希望将code_task的10条数据和task_version的5条数据一起查出发,一共是15条数据,然后按照每一条数据的update_date排序

表结构和数据

-- ----------------------------
-- Table structure for code_task
-- ----------------------------
DROP TABLE IF EXISTS `code_task`;
CREATE TABLE `code_task` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
  `title` varchar(100) NOT NULL COMMENT '标题',
  `userID` int(11) NOT NULL COMMENT '任务创建人',
  `content` varchar(10000) DEFAULT NULL COMMENT '任务要求',
  `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  `tags` varchar(50) DEFAULT NULL COMMENT '标签',
  `status` varchar(10) DEFAULT '5' COMMENT '任务状态',
  `type` varchar(20) DEFAULT NULL COMMENT '任务类型',
  `difficulty` varchar(20) DEFAULT NULL COMMENT '任务难度',
  `valid_period_begin` varchar(30) DEFAULT NULL COMMENT '有效期开始时间',
  `valid_period_end` varchar(30) DEFAULT NULL COMMENT '有效期结束时间',
  `specify_participate_users` varchar(50) DEFAULT NULL COMMENT '指定参与人员',
  `participate_count` int(20) DEFAULT '0' COMMENT '参与人数',
  `commend_count` int(20) DEFAULT '0' COMMENT '点赞人数',
  `concern_count` int(20) DEFAULT '0' COMMENT '关注人数',
  `browse_count` int(20) DEFAULT '0' COMMENT '浏览人数',
  `discuss_count` int(20) DEFAULT '0' COMMENT '讨论人数',
  `task_cover` varchar(100) DEFAULT NULL COMMENT '任务封面',
  `current_version` varchar(20) DEFAULT NULL COMMENT '当前版本',
  `input_style` varchar(1000) DEFAULT NULL COMMENT '输入样式',
  `output_style` varchar(1000) DEFAULT NULL COMMENT '输出样式',
  `cover_path` varchar(150) DEFAULT NULL COMMENT '任务封面',
  `flag_delete` int(2) DEFAULT '0' COMMENT '删除标识 0未删除 1已删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8 COMMENT='任务';

-- ----------------------------
-- Records of code_task
-- ----------------------------
BEGIN;
INSERT INTO `code_task` VALUES (0, '代码任务测试00', 1, '代码任务测试内容00', '2021-03-15 10:02:13', '2021-03-17 10:02:13', NULL, '0', '1', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (1, '代码任务测试01', 1, '代码任务测试内容01', '2021-03-15 17:08:52', '2021-03-17 17:08:52', NULL, '1', '1', '1', NULL, NULL, NULL, 5, 0, 20, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (2, '代码任务测试02', 1, '代码任务测试内容02', '2021-03-16 17:09:12', '2021-03-17 17:09:12', NULL, '1', '1', '1', NULL, NULL, NULL, 15, 0, 55, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (3, '代码任务测试03', 1, '代码任务测试内容03', '2021-03-17 17:09:22', '2021-03-17 17:09:22', NULL, '3', '1', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (4, '代码任务测试04', 1, '代码任务测试内容04', '2021-03-17 17:09:29', '2021-03-17 17:09:29', NULL, '4', '1', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (5, '代码任务测试05', 1, '代码任务测试内容05', '2021-03-17 17:09:35', '2021-03-17 17:09:35', NULL, '1', '1', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (6, '代码任务测试06', 1, '代码任务测试内容06', '2021-03-17 20:39:01', '2021-03-17 20:39:01', NULL, '1', '0', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (7, '代码任务测试07', 1, '代码任务测试内容07', '2021-03-17 20:39:36', '2021-03-17 20:39:36', NULL, '2', '0', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (8, '代码任务测试08', 1, '代码任务测试内容08', '2021-03-17 20:39:41', '2021-03-17 20:39:41', NULL, '1', '0', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (9, '代码任务测试09', 1, '代码任务测试内容09', '2021-03-17 20:56:51', '2021-03-17 20:56:51', NULL, '3', '0', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO `code_task` VALUES (10, '新的任务开始10', 1, '代码任务测试内容10', '2021-03-19 14:45:13', '2021-03-19 14:45:13', NULL, '2', '0', '1', NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, 0);
-- ----------------------------
-- Table structure for task_version
-- ----------------------------
DROP TABLE IF EXISTS `task_version`;
CREATE TABLE `task_version` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
  `version` varchar(100) NOT NULL COMMENT '版本号',
  `userID` int(11) NOT NULL COMMENT '版本创建人',
  `taskID` int(11) NOT NULL COMMENT '版本所属任务ID',
  `code` varchar(10000) DEFAULT NULL COMMENT '版本执行代码',
  `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `test_result` varchar(1000) DEFAULT NULL COMMENT '版本测试结果',
  `remark` varchar(1000) DEFAULT NULL COMMENT '版本备注内容',
  `status` varchar(10) DEFAULT '0' COMMENT '版本状态',
  `best` int(2) DEFAULT '0' COMMENT '最优版本标识',
  `version_discuss_count` int(10) DEFAULT '0' COMMENT '版本讨论数',
  `version_like_count` int(10) DEFAULT '0' COMMENT '版本获赞数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8 COMMENT='任务提交版本';

-- ----------------------------
-- Records of task_version
-- ----------------------------
BEGIN;
INSERT INTO `task_version` VALUES (0, 'V0.0.1', 1, 33, 'abc', '2021-03-25 14:15:34', '2021-03-25 14:18:58', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (1, 'V0.0.2', 2, 33, 'ffffff', '2021-03-25 14:16:08', '2021-03-25 14:19:08', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (2, 'V0.0.1', 1, 32, 'qwe', '2021-03-25 14:17:09', '2021-03-25 14:19:10', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (3, 'V02', 2, 33, 'ffgggggsgref', '2021-03-25 18:46:50', '2021-03-25 20:06:44', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (4, 'V02', 1, 33, 'ffgggggsgref', '2021-03-25 18:53:46', '2021-03-25 20:06:45', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (5, 'V02', 1, 33, 'ffgggggsgref', '2021-03-25 18:53:49', '2021-03-25 20:06:46', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (6, 'V1.0.1', 1, 39, '**Markdown Editor** 11111111', '2021-03-25 20:04:27', '2021-03-26 17:49:33', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (7, 'V1.0.1', 1, 39, '**Markdown Editor** 34434', '2021-03-25 20:09:50', '2021-03-26 17:49:28', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (8, 'V1.0.1', 1, 39, '**Markdown Editor** 524532452345', '2021-03-25 20:10:14', '2021-03-26 17:49:26', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (9, 'V1.0.1', 1, 39, '**Markdown Editor** 33333', '2021-03-25 20:10:18', '2021-03-26 17:49:35', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (10, 'V1.0.1', 1, 39, '```\njs\nadfgffff\n\n```\n', '2021-03-25 20:10:49', '2021-03-25 20:13:31', NULL, NULL, '0', 0, 0, 0);
INSERT INTO `task_version` VALUES (11, 'V1.0.1', 1, 38, '```\njs\nadfgffff\n\n```\n', '2021-03-25 20:13:06', '2021-03-25 20:13:06', NULL, NULL, '0', 0, 0, 0);
阅读 3.1k
2 个回答
select a.*,b.* from t_role_acl as a,t_role_acl as b order by b.acl_id desc


#### 6.11后补充

(select id, title, update_date from code_task ORDER BY update_date DESC limit 0, 10) union all  
(select version, code, update_date from task_version ORDER BY update_date DESC limit 0, 5) order by update_date desc

看一下下面t1,t2表

mysql> desc t1;
+-------+--------------+------+-----+-------------------+-------------------+
| Field | Type         | Null | Key | Default           | Extra             |
+-------+--------------+------+-----+-------------------+-------------------+
| id    | int unsigned | NO   | PRI | NULL              | auto_increment    |
| name  | varchar(50)  | YES  |     | NULL              |                   |
| dt    | datetime     | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------+--------------+------+-----+-------------------+-------------------+

mysql> desc t2;
+-------+----------+------+-----+-------------------+-------------------+
| Field | Type     | Null | Key | Default           | Extra             |
+-------+----------+------+-----+-------------------+-------------------+
| sid   | bigint   | NO   | PRI | NULL              | auto_increment    |
| dt    | datetime | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
| age   | smallint | YES  |     | NULL              |                   |
+-------+----------+------+-----+-------------------+-------------------+

里面的数据

mysql> select * from t1;
+----+------+---------------------+
| id | name | dt                  |
+----+------+---------------------+
|  1 | hao  | 2021-06-09 18:04:20 |
|  2 | ni   | 2021-06-09 18:02:20 |
+----+------+---------------------+

mysql> select * from t2;
+-----+---------------------+------+
| sid | dt                  | age  |
+-----+---------------------+------+
|   1 | 2021-06-09 18:05:58 |   12 |
|   2 | 2021-06-09 18:06:33 |   13 |
|   3 | 2021-06-09 18:06:41 |   15 |

Mysql 叉链接

select t1.id,t1.name,t2.sid,t2.dt,t2.age from t1 , t2 order by dt;

 +----+------+-----+---------------------+------+
| id | name | sid | dt                  | age  |
+----+------+-----+---------------------+------+
|  1 | hao  |   1 | 2021-06-09 18:05:58 |   12 |
|  2 | ni   |   1 | 2021-06-09 18:05:58 |   12 |
|  1 | hao  |   2 | 2021-06-09 18:06:33 |   13 |
|  2 | ni   |   2 | 2021-06-09 18:06:33 |   13 |
|  1 | hao  |   3 | 2021-06-09 18:06:41 |   15 |
|  2 | ni   |   3 | 2021-06-09 18:06:41 |   15 |
+----+------+-----+---------------------+------+
 

这是你想要的这种结果吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题