下面代码,重复查询了相同的内容,也就是userId对应的用户被重复查询了,本来好友列表不需要该登录用户。修复下面代码: @Select("SELECT u.* FROM user_inf u JOIN addfriend_inf af ON (u.user_id = af.my_id OR u.user_id = af.friend_id) WHERE (af.my_id = #{userId} OR af.friend_id = #{userId}) AND af.apply_state = 2") List<User> selectFriendsByUserId(@Param("userId") int userId);
时间: 2024-04-18 12:33:33 浏览: 93
vs + sql 完美解决用户同时登录问题(非常经典)
可以通过使用DISTINCT关键字来去除重复的查询结果。修改后的代码如下:
```java
@Select("SELECT DISTINCT u.* FROM user_inf u JOIN addfriend_inf af ON (u.user_id = af.my_id OR u.user_id = af.friend_id) WHERE (af.my_id = #{userId} OR af.friend_id = #{userId}) AND af.apply_state = 2")
List<User> selectFriendsByUserId(@Param("userId") int userId);
```
通过添加DISTINCT关键字,查询结果中的重复行将被去除,确保每个用户只查询一次。这样就修复了重复查询的问题。
阅读全文