Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 连接具有不同变量大小的ID上的表_Mysql_Sql_Join - Fatal编程技术网

Mysql 连接具有不同变量大小的ID上的表

Mysql 连接具有不同变量大小的ID上的表,mysql,sql,join,Mysql,Sql,Join,当联接的表之间存在变量范围不匹配时,联接是否可以使用索引?例如,一个表中的id为varchar(10),另一个表中的id为varchar(11),其中id为外键?我知道,如果类型不同,它不起作用,但不确定不同范围的情况是否相同 此外,如果使用ZEROFILL,INT类型(例如INT(10)或INT(11))上的范围实际上不会影响除格式之外的任何内容。上述两个INT的存储容量相同。但是,与我的第一个问题一样,当联接表之间的INT类型存在范围不匹配时,联接是否可以使用索引?是的,索引应该在varch

当联接的表之间存在变量范围不匹配时,联接是否可以使用索引?例如,一个表中的id为varchar(10),另一个表中的id为varchar(11),其中id为外键?我知道,如果类型不同,它不起作用,但不确定不同范围的情况是否相同


此外,如果使用ZEROFILL,INT类型(例如INT(10)或INT(11))上的范围实际上不会影响除格式之外的任何内容。上述两个INT的存储容量相同。但是,与我的第一个问题一样,当联接表之间的INT类型存在范围不匹配时,联接是否可以使用索引?

是的,索引应该在varchar字段大小不同的地方工作

在这种情况下,外键不应该有任何问题,因为子表中的字段的大小更大。如果相反,如果外键值大于子表中允许的varchar字段,则可能会出现错误