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;