我的数据库结构如下:
表预订
表 SIZE
多对多表格 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。
这可能吗?如果是这样,我该怎么做?
答案 0 :(得分:4)
您可以使用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;