`inner join`时如何按排序顺序匹配而不是两两匹配

比如场景是用户申请借款,系统先审核后放款。如果有用户复借的话就会在审核记录的表和放款记录的表中出现多条记录。
现在想匹配到每条借款记录和相应的审核记录,但使用 select * from a inner join b on a.user_name=b.user_name会出现2*2即4条结果,而实际只需要2条。
表数据示例:
a表是审核记录:

user_name  check_time
 张三       2017/11/01
 张三       2017/11/19

b表是放款记录:

user_name lend_amount lend_time
 张三       1000        2017/11/05
 张三       2000        2018/01/09

我考虑过对比审核时间和放款时间,但我看了下系统有的审核和放款相差只有4天而有的却是20多天,这样就不能通过时间来匹配了。
(ps: 数据库是接管来的,且只有读权限)

阅读 3.2k
2 个回答

审核表与放款表应该是有一一对应的关联关系的,你这关联方法肯定不对啊,既然是接管来的,直接找来源问一下这两个表怎么关联的

这表建的。。。审核记录都不关联到放款的?两个表都没有主键吗?
如果这是真实表结构,只能说神仙来了也关联不起来啊

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