MYSQL表连接之谜(或者可能是MYSQL错误?)

MYSQL表连接之谜(或者可能是MYSQL错误?),mysql,Mysql,对于MYSQL v 5.5.54(项目依赖性阻止我升级),这似乎是非常奇怪的行为。 考虑下面的陈述: select eus.source_id, cet.alpha_id from cja_so_activities_eur cet, event_unit_sources eus where eus.source_id = cet.alpha_id; 人们期望结果集只由eus.source_id=cet.alpha_id的行组成,例如1256860、1256860。然而,我收

对于MYSQL v 5.5.54(项目依赖性阻止我升级),这似乎是非常奇怪的行为。 考虑下面的陈述:

select  eus.source_id, cet.alpha_id

  from  cja_so_activities_eur cet, event_unit_sources eus 

  where eus.source_id = cet.alpha_id;
人们期望结果集只由eus.source_id=cet.alpha_id的行组成,例如1256860、1256860。然而,我收到了eus.source\u id='FA00005',cet.alpha\u id='0'的额外结果。这就像MYSQL不知何故认为“FA00005”等于“0”,我们知道这不是真的


有什么想法吗?谢谢

表模式、示例数据和您期望的输出以及您得到的输出在这里非常有用。并学会使用适当的连接;FROM子句中的表的逗号列表来自20世纪90年代。如果一列是
INT
,另一列是
VARCHAR
,则转换可能开始。
FA00005
的整数等价物是
0
@tadman您是对的,但我认为等价不是合适的术语,因为
FA00004
也被转换为0。谢谢大家,我深入研究了一下,发现数据类型不一致是问题所在,所以您对tadman的理解是正确的。使用cast(cet.alpha_id as char(20))实现了这个技巧。表模式、示例数据、您期望的输出以及您得到的输出在这里非常有用。并学会使用适当的连接;FROM子句中的表的逗号列表来自20世纪90年代。如果一列是
INT
,另一列是
VARCHAR
,则转换可能开始。
FA00005
的整数等价物是
0
@tadman您是对的,但我认为等价不是合适的术语,因为
FA00004
也被转换为0。谢谢大家,我深入研究了一下,发现数据类型不一致是问题所在,所以您对tadman的理解是正确的。使用cast(cet.alpha_id作为char(20))实现了这个技巧。