如何通过Sql匹配另一个表时间最近的一条记录

qq_31509729 2016-08-26 02:44:05
A表中的数据:
ID name card bookingtime
0001 张三 20f2743c78709c95 2016-04-15 12:29:48
0002 李四 20f2743c78709c93 2016-08-16 12:29:48
0003 王五 20f2743c78709c94 2016-08-17 12:29:48
0004 赵六 20f2743c78709c91 2016-08-18 12:29:48
0005 刘磊 41121b0329647692 2016-08-25 15:14:54
0006 刘磊 41121b0329647692 2016-08-22 15:14:54
0007 李四 20f2743c78709c93 2016-08-24 12:29:48

B表中的数据:
ID card checktime
1 41121b0329647692 2016-08-23 09:33:11
2 41121b0329647692 2016-08-26 11:04:23
3 20f2743c78709c95 2016-04-16 12:29:48

要求:根据A表的 card 到 B表中查询相应的记录,若B表有多条记录,则根据 A bookingtime 与 B表的 checktime 最相近的匹配查询。我想要得到的结果如下:
id name card bookingtime checktime
0001 张三 20f2743c78709c95 2016-04-15 12:29:48 2016-04-15 12:29:48
0003 王五 20f2743c78709c94 2016-08-17 12:29:48 null
0004 赵六 20f2743c78709c91 2016-08-18 12:29:48 null
0005 刘磊 41121b0329647692 2016-08-25 15:14:54 2016-08-25 15:14:54
0006 刘磊 41121b0329647692 2016-08-22 15:14:54 2016-08-23 09:33:11
0007 李四 20f2743c78709c93 2016-08-24 12:29:48 null

SQL语句怎么写才能得到我想要的结果?
...全文
1472 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16936431 2016-08-31
  • 打赏
  • 举报
回复
没人吗,这个怎么解决啊
ACMAIN_CHM 2016-08-26
  • 打赏
  • 举报
回复
select a.*,
	(select min(checktime) from B表中的数据 where card=a.card )
from A表中的数据 a

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧