Java 如何改革或迭代sql结果集以构建映射

Java 如何改革或迭代sql结果集以构建映射,java,mysql,sql,select,Java,Mysql,Sql,Select,我正在尝试构建以下缓存- ConcurrentMap<String, ConcurrentHashMap<TeamType, Team>> 这使我返回了正确的条目-但是当结果返回时,我有重复的行,因此很难迭代结果集并构建相关的pojo类 我正在寻找类似于选择不同行的内容,其中的条件保持不变,但我认为这是不允许的 有人能给我建议一些解决方法吗 谢谢如果在每个团队表中都有一个名为team\u name的字段,那么这样做如何: select u.userid as User,

我正在尝试构建以下缓存-

ConcurrentMap<String, ConcurrentHashMap<TeamType, Team>>
这使我返回了正确的条目-但是当结果返回时,我有重复的行,因此很难迭代结果集并构建相关的pojo类

我正在寻找类似于
选择不同行的内容,其中
的条件保持不变,但我认为这是不允许的

有人能给我建议一些解决方法吗


谢谢

如果在每个团队表中都有一个名为
team\u name
的字段,那么这样做如何:

select u.userid as User, 'Rugby' as TeamType, t.team_name as Team
from Users u
inner join RugbyTeam t on u.userid = t.userid

union all

select u.userid as User, 'Football' as TeamType, t.team_name as Team
from Users u
inner join FootballTeam t on u.userid = t.userid

union all

select u.userid as User, 'Rugby' as TeamType, t.team_name as Team
from Users u
inner join CricketTeam t on u.userid = t.userid

order by User;

你得到的副本是什么?您可以在查询中指定DISTINCT。。。您的查询对where中通过in。。。您应该只按用户连接表。然后按用户分组我认为您应该按团队类型分别查询它们,这将使您的查询更简单,而且更符合逻辑,因为我猜您的表没有相同的列。
select u.userid as User, 'Rugby' as TeamType, t.team_name as Team
from Users u
inner join RugbyTeam t on u.userid = t.userid

union all

select u.userid as User, 'Football' as TeamType, t.team_name as Team
from Users u
inner join FootballTeam t on u.userid = t.userid

union all

select u.userid as User, 'Rugby' as TeamType, t.team_name as Team
from Users u
inner join CricketTeam t on u.userid = t.userid

order by User;