我下面的当前查询得到了所有注册参加活动的评委.in子句中的子查询是因为事件可以是一天或多天,并且评委可以注册一个或多个.这很好,但如果它是一个2天的事件,并且法官报到两者,他们是2行返回给用户.我想将它们结合起来,以便显示它们的信息以及两个事件日.我该怎么办呢?
select concat(ej.FirstName, ' ', ej.LastName) as judge, ej.email, ej.phone, ed.EventDate
from EventJudges ej
inner join EventJudgeXref ejx on ej.Id = ejx.EventJudgeId
inner join EventDates ed on ejx.EventDateId = ed.Id
where ejx.EventDateId in(SELECT Id FROM EventDates WHERE EventId = 1)
order by ej.FirstName asc, ej.LastName asc
Run Code Online (Sandbox Code Playgroud)
EventJudgeXref表包含a JudgeId和EventDateId以供参考.
尝试使用group_concat:
select concat(ej.FirstName, ' ', ej.LastName) as judge,
ej.email,
ej.phone,
group_concat(ed.EventDate) as EventDate
from EventJudges ej
inner join EventJudgeXref ejx on ej.Id = ejx.EventJudgeId
inner join EventDates ed on ejx.EventDateId = ed.Id
where ejx.EventDateId in(SELECT Id FROM EventDates WHERE EventId = 1)
group by ej.Id
order by ej.FirstName asc, ej.LastName asc
Run Code Online (Sandbox Code Playgroud)