mysql - 内连接不准确匹配
问题描述
我有两个表,我试图加入一个匹配的 ID。
格式通常是一个简单的数字,例如 16。
但是,在其中一张表中,一些 ID 更长,也包含字母,最终可能看起来像这样:16AfGs9。
我想,好吧,没问题。但是,我的 MySQL 查询当前将 ID 16 行与具有 16xxx 格式的所有 ID 匹配。
是否可以在完全匹配上使用 INNER JOIN?
当前查询:
select * from t1
inner join t2
on t1.id=t2.customer_id
解决方案
您需要进行字符串比较。该列显然是一个字符串,所以比较需要是一个字符串:
where id = '16'
如果您在不同的表中有 id,一个是整数,一个是字符串,那么您需要修复您的数据模型!同时,您可以转换为字符串:
where cast(inttable.id as char) = stringtable.id
推荐阅读
- javascript - 如何使 HTML 中 div 元素的 innerText 根据文本的长度自动调整大小?
- json - Apache2没有写入文件的权限[Errno 13] Permission denied Flask Python
- bixby - 我可以创建一个胶囊,向 Bixby 用户提供 COVID-19 信息吗?
- r - 在 emmip 图中更改线条粗细
- c++ - “Illegal else without matching if”错误消息c ++
- c# - 在 .NET 对象上设置“可为空”属性
- unix - 从 vivado 中的日志文件解析的两个时间戳之间的差异
- mysql - Laravel 使用多个数据库(2 MySQL,1 SQLite)
- javascript - 无法从 React 中的猫鼬映射数组
- python - Django:使用 django_table2 导出 csv 文件