首页 > 解决方案 > 内连接不准确匹配

问题描述

我有两个表,我试图加入一个匹配的 ID。

格式通常是一个简单的数字,例如 16。

但是,在其中一张表中,一些 ID 更长,也包含字母,最终可能看起来像这样:16AfGs9。

我想,好吧,没问题。但是,我的 MySQL 查询当前将 ID 16 行与具有 16xxx 格式的所有 ID 匹配。

是否可以在完全匹配上使用 INNER JOIN?

当前查询:

select * from t1 
inner join t2 
on t1.id=t2.customer_id

标签: mysqlsql

解决方案


您需要进行字符串比较。该列显然是一个字符串,所以比较需要是一个字符串:

where id = '16'

如果您在不同的表中有 id,一个是整数,一个是字符串,那么您需要修复您的数据模型!同时,您可以转换为字符串:

where cast(inttable.id as char) = stringtable.id

推荐阅读