数据库
首页 > 数据库> > mysql连接是否可以在不同的数据类型上发生

mysql连接是否可以在不同的数据类型上发生

作者:互联网

假设我们有两个表,表A(父)和表B(子),它们之间有一对多的关系,通过表B中的parent_id(VARCHAR(100))字段建立.

parent_id字段的数据类型与表A中的id(INT(11))字段不同.所以问题是可以通过MYSQL JOIN查询返回正确的记录吗?

我遇到过这种情况.我正在运行以下查询:

 SELECT p.payment_amount, s.company_name
 FROM payments p 
 LEFT JOIN suppliers s ON p.supplier_id = s.id 
 LIMIT 5

这里有一家供应商有多笔付款.现在这个查询返回了5条记录,其中我可以看到所有5条记录的payment_amount,但我只能看到company_name,只有那些p.supplier_id为一位数长度的记录.如果在数据库中我将​​p.supplier_id修改为任何有效的2位数id,我就无法获得供应商记录.

解决方法:

MySQL可以使用不同的数据类型进行连接,但性能很差,因为它必须为每一行从一种类型转换为另一种类型.

我根据你上面的SQL设置了一个快速的SQL小提琴来演示它的工作原理: –

http://www.sqlfiddle.com/#!2/f7d02a/1

请注意,存储在字符串中的数字中的前导字符将导致其被计算为0.

标签:mysql,join,sqldatatypes
来源: https://codeday.me/bug/20190629/1321313.html