当我在mysql中使用左联接时,有两条数据,但我确信只有一条数据会出来
sql是
SELECT bs.id,distribute_user_id,manager_id,phone,manager_name
FROM bank_integral_distribute_serial bs
LEFT JOIN manager mi ON bs.distribute_user_id = mi.manager_id
WHERE bs.phone = "13978836385"

各自的数据sql是
SELECT *
FROM bank_integral_distribute_serial
WHERE distribute_user_id="1475118915817316353"

sql是
SELECT *
FROM manager
WHERE manager_id = "1475118915817316353"

我还查了一下手机号码,只有一个
问题:为什么有两条数据?
发布于 2022-03-23 17:15:17
原因是MySQL比较类型不一致。
你可以看到
https://dev.mysql.com/doc/refman/5.7/en/type-conversion.html
distribute_user_id原来的表是bigint : manager_id是varchar
SELECT IF("1475118915817316353"=1475118915817316354,"equal","unequal") //The results are equal
SELECT IF("1475118915817316311"=1475118915817316360,"enqual","unequal") //The results are equal
//left:[1475118915817316224,1475118915817316480] The results are equal, both with the right side
SELECT IF("1475118915817316480"=1475118915817316360,"enqual","unenqual")https://stackoverflow.com/questions/71586913
复制相似问题