怎么样通过Sql匹配另一个表时间最近的一条记录

MySql 码拜 8年前 (2017-04-20) 1911次浏览
    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语句怎么写才能得到本人想要的结果?
解决方案

50

select a.*,
	(select min(checktime) from B表中的数据 where card=a.card )
from A表中的数据 a

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样通过Sql匹配另一个表时间最近的一条记录
喜欢 (0)
[1034331897@qq.com]
分享 (0)