Я пытаюсь узнать, как объединить несколько столбцов из одной таблицы в один столбец из другой таблицы для заданного идентификатора.
Вот мой командный стол:
create table teams (
id varchar(10),
name varchar(30),
primary key (id)
);
Вот мой стол командного матча:
create table teammatch (
id integer,
firstTeamId varchar,
secondTeamId varchar,
matchId integer,
primary key(id),
foreign key (firstTeamId) references teams (id),
foreign key (secondTeamId) references teams (id)
);
Мой sql:
select teammatch.*, t1.*, t2.*
from teammatch
inner join teams t1 on teammatch.firstTeamId = t1.id
inner join teams t2 on teammatch.secondTeamId = t2.id
where teammatch.id = #{id}
Данные:
ID FIRSTTEAMID SECONDTEAMID
1 POR DEN
2 TOR PHI
Этот запрос возвращает команду POR для t1 и t2, но мне нужно, чтобы
вернуть POR для t1 и DEN для t2
EDIT:
Это прекрасно работает, когда я пишу SQL-запрос в базе данных H2, но когда я пишу его с mybatis в файле картографического XML-файла, он возвращает одинаковое значение для обоих полей.
Вот моя карта результатов
<resultMap id="TeamMatchMap" type="TeamMatch">
<id column="id" property="id" />
<association property="firstTeamId" column="firstTeamId" javaType="Team">
<id column="id" property="id" />
<result column="name" property="name" />
</association>
<association property="secondTeamId" column="secondTeamId" javaType="Team">
<id column="id" property="id" />
<result column="name" property="name" />
</association>
</resultMap>