【发布时间】:2020-06-06 13:02:18
【问题描述】:
我有一个表参加者,当加入表参加者与表会议时,参加者可以参加许多会议。因此,当显示与会者以及他们参加了哪些会议时,我会得到多行相同的与会者,例如:
John Doe-BMW Conference
John Doe-Blockchain conference
Jane Doe-blabla
John Doe- Mercedess
sql中有没有办法显示
John Doe-宝马会议,梅赛德斯,区块链?
SELECT Distinct
attendee.Id, attendee.Firstname, attendee.PhoneNumber,
attendee.Email,attendee.Town, attendee.BloodType, session.Id ,
session.LocationId , session.Name as SessionName , location.Id ,
location.Name as Location_Name , sessionattended.SessionAttendedId,
sessionattended.SessionId, sessionattended.AttendeeId,
attendee.Lastname
FROM `session`, `attendee`, `sessionattended`, `location`
WHERE attendee.Id = sessionattended.AttendeeId
and session.Id = sessionattended.SessionId
and session.LocationId = location.Id;
【问题讨论】:
-
你为什么选择不使用正确的、明确的、标准的、可读的
JOIN语法? -
使用
GROUP BY。并且还使用自 SQL-92(28 年前)以来可用的现代连接语法。 -
group by 如何帮助? @TheImpaler
-
GROUP BY <columns>会将多行聚合为一行。这似乎就是你想要的。 -
这个问题的答案在很大程度上取决于您使用的 DBMS(MySQL、MariaDB、Postgres、Microsoft SQL Server 等)和版本。请您edit指定问题。
标签: sql