-- SQL语句
SELECT
`t`.`module_id`,
`ra`.`table_id` -- t.*, ra.*
FROM
sys_user_auth AS t
JOIN `sys_table` AS `ra` ON `t`.`module_id` = `ra`.`table_id`
AND t.user_role_id = 3
AND t.module_type = 0;
-- 查询结果
--N00 0
-- 字段数据类型
module_id varchar(10)
table_id bigint
-- 测试
select cast('N00' as signed integer)
--0
-- 强制转换导致结果集异常
-- 修改SQL
SELECT
`t`.`module_id`,
`ra`.`table_id` -- t.*, ra.*
FROM
sys_user_auth AS t
JOIN `sys_table` AS `ra` ON `t`.`module_id` = concat(`ra`.`table_id` )
AND t.user_role_id = 3
AND t.module_type = 0;
参与计算的数据类型应该尽量一致,不一致建议手工转格式,避免异常问题。