mapper中,关联的一对多,正确的结果应该是按照一方的id查找,根据映射得到的是一个一方对象,对象里嵌套这list属性,但是结果却出来了多条,在sql中实验

一方中123456789只有一条数据

一对多关联按照一方的id查找信息的一个笛卡尔积问题-LMLPHP

多方中两条

一对多关联按照一方的id查找信息的一个笛卡尔积问题-LMLPHP

当按照一方id=123456789查找最后需要的是显示一条语句,但是却得到两条

一对多关联按照一方的id查找信息的一个笛卡尔积问题-LMLPHP

分析原因是因为,这是由于数据库查找匹配时候数据库按照笛卡尔积的运算进行的

故而一方的id分别与多方中满足条件的数据进行匹配结果就查出来了两条,尽管我们select 的是一方的所有字段,只是隐含的多方字段没有显示而已,为了消除这个重复,我们只需要在后面加一个限制 limit 1 即可,如下

一对多关联按照一方的id查找信息的一个笛卡尔积问题-LMLPHP

04-30 07:03