猿问

mysql用主键查询出两条相同的记录

SELECT a.id, 
    a.user_id AS userId,
    a.content, a.status, 
    a.create_time AS createTime, 
    a.address, 
    a.type,
    a.people_count AS peopleCount, 
    a.fee_content AS feeContent, 
    a.active_time AS activeTime, 
    a.condition, a.pic, 
    a.join_count,
    c.avatars AS initiatorAvatars, 
    c.phone AS initiatorPhone, 
    c.name As initiatorName 
    FROM t_active a 
        LEFT JOIN t_join_active b ON a.id = b.active_id 
        LEFT JOIN t_user c ON a.user_id=c.id 
        WHERE a.id=?

id是主键查询出两条相同的记录。
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
报了这个错。
sql复制到数据库中查询,只有一条。请教是什么问题


叮当猫咪
浏览 1961回答 5
5回答

胡说叔叔

重启idea,rebuild之后解决了

慕码人8056858

是因为你使用了做左关联 如果你的主表(t_active)对应的左关联其他表(t_join_active 、t_user )有;俩条相关的记录 那么查出来就是俩条记录你可以执行以下sql ,最前面绝对是俩条相同的记录,后面的数据不一样

眼眸繁星

问题就是那个问题 解决办法有俩种,一个是把你的返回值One改为list 一个是你直接在加一些你的业务条件,让他返回值绝对为一条,limit 1取第一条 你把你的业务数据倒排序取第一条就好了

慕雪6442864

查看配置文件,连得是否是同一个数据库。。。。。。。。。

慕运维8079593

应用代码有问题,从应用中打印sql出来再和这个sql对比一下
随时随地看视频慕课网APP

相关分类

Java
我要回答