ms-access - 搜索 2 次以在 2 个表之间进行匹配
问题描述
我有 2 个带 ID 的表。
我想做类似左连接的事情:
我希望如果 TABLE2 中不存在来自 TABLE1 的 ID,它将在 TABLE2 中搜索具有相同 5 位数字的 ID。
但我希望它在没有找到完整匹配之后搜索最后 5 位数字之间的匹配。
例如:
表格1:
ID Name
1111111 'aa'
2222222 'bb'
3333333 'cc'
4444444 'dd'
5555555 'ee'
6666666 'ff'
表2:
ID City
1166666 're'
7833333 'tv'
4444444 'gh'
8547555 'ie'
6666666 'rt'
接受的结果:
ID Name City Status
1166666 'aa' 're' ok
2222222 'bb' no_record
3333333 'cc' 'tv' ok \\last 5 digits are match.
4444444 'dd' 'gh' ok
5555555 'ee' no_record \\ just the last 3 digits are match.
6666666 'ff' 'rt' ok
在我的示例中,如果它将一起搜索完全匹配或最后 5 位数字,他将匹配6666666
to1166666
而不是 to 6666666
。
我该怎么写这个?
解决方案
您可以使用 MOD 获取数字的最后 5 个,因此查询如下所示:
SELECT T1.NAME, COALESCE(T2.CITY, T3,CITY) AS CITY
FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON T1.ID = T2.ID
LEFT JOIN TABLE2 T3 ON MOD(T1.ID,100000) = MOD(T2.ID,100000)
推荐阅读
- android-studio - 在 Android Studio 上访问 API 网关
- php - 序列化器 virtualProperty 和访问器有什么区别?
- python - 用简单的例子学习正则表达式
- java - 不可读的 Pom 文件 - Maven
- javascript - 计算第二行的 Y1,它是第一行大小的一半
- python - 如何在训练后恢复大型 Tensorforce 代理(18GB)
- r - 删除字符串末尾的多个斜杠并仅在 R 中保留一个
- javascript - event.state== null 和如何让 pushState 在 Firefox 上正确运行?
- php - 用户登录codeigniter后获取数据
- javascript - 两个小数位的 Javascript 正则表达式模式