环境 Mac
安装方式 brew
版本 10.1.26 10.2.x
出现的问题:
现在有2张表 A表 与B表
A表数据有1000条 B表有200条
select * from A left join B on A.id = B.a_id
结果只能查到200条数据.才发现 不管是 left join 还是right join 还是inner join 都是一样的结果.
将数据库恢复到服务器上后查询正常. 求大神赐教.是怎么回事?
安装方式 brew
版本 10.1.26 10.2.x
出现的问题:
现在有2张表 A表 与B表
A表数据有1000条 B表有200条
select * from A left join B on A.id = B.a_id
结果只能查到200条数据.才发现 不管是 left join 还是right join 还是inner join 都是一样的结果.
将数据库恢复到服务器上后查询正常. 求大神赐教.是怎么回事?
SELECT 太多了 略
FROM `b_archives` `arc`
LEFT JOIN `t_system_param` `edu` ON `arc`.`education` = `edu`.`id`
LEFT JOIN `t_system_param` `sm` ON `arc`.`studentMajor` = `sm`.`id`
LEFT JOIN `t_system_param` `st` ON `arc`.`studentType` = `st`.`id`
LEFT JOIN `t_system_param` `ss` ON `arc`.`studentState` = `ss`.`id`
LEFT JOIN `t_system_param` `cl` ON `arc`.`chineseLevel` = `cl`.`id`
LEFT JOIN `t_system_param` ON `arc`.`fundSource` = `t_system_param`.`id`
LEFT JOIN `b_grades` ON `arc`.`gradesID` = `b_grades`.`id`
LEFT JOIN `b_college` ON `b_grades`.`college` = `b_college`.`id`
LEFT JOIN `v_dormitory` ON `v_dormitory`.`archivesID` = `arc`.`id`问题基本确定位置了. 其实去掉 v_dormitory 查询结果正常. v_dormitory 是一个视图 SQL如下 :select 略
from `b_dormitory`
where
`b_dormitory`.`id` in (select max(`b_dormitory`.`id`) from `b_dormitory` group by `b_dormitory`.`archivesID`)b_dormitory 表中针对一个archivesID 有多条数据. 只取b_dormitory.id 最大的. 故此增加了个中间表来确定每个archivesID只对应唯一一个b_dormitory 疑问:
一定得加中间表吗? 为什么之前在服务器上没有这样的情况? 在本机就出现了.