一条记录中的 GROUP 数据(多对多)

GROUP data in one record (many-to-many)

我的数据库结构如下:

Table 预约

Table 尺码

多对多 Table RESERVATIONS_HAS_SIZE

一个人可以注册例如3个人。您必须选择这 3 种人的尺码(S、M 或 L)。

我的查询如下所示:

SELECT * FROM RESERVATION
INNER JOIN RESERVATIONS_HAS_SIZE
ON RESERVATION.ID = RESERVATIONS_HAS_SIZE.RESERVATION_ID
INNER JOIN SIZES
ON RESERVATIONS_HAS_SIZE.SIZE_ID = SIZE.ID

问题是现在我得到了 3 条记录。我只想要一条记录,例如一个字段,大小为:S、S、L。

这可能吗?如果是这样,我该怎么做?

您可以使用 GROUP_CONCAT():

SELECT GROUP_CONCAT(s.Size SEPARATOR ', ')
FROM RESERVATION r INNER JOIN
     RESERVATIONS_HAS_SIZE rhs
     ON r.ID = rhs.RESERVATION_ID INNER JOIN
     SIZES s
     ON rhs.SIZE_ID = s.ID;