0

我有 2 个表(简化如下)

**classes**                        **locations**
[classname][locationid][time]     [id][locationname][address]
  classA         1      1pm         1   locationA     123
  classB         2      2pm         2   locationB     456
  classC         2      3pm  
  classD         1      2pm  

我不知道如何措辞...我想创建一个 SELECT 语句,这样我就可以将所有类按位置分组在一起,而无需复制位置数据。如果我使用:

SELECT * FROM classes
INNER JOIN locations ON classes.locationid = locations.id 

我最终得到 4 行的结果。如何获得 2 行的结果?(前 locationA 包含 classA 和 classD,没有获得重复的位置数据)

这是不能在直接 MySQL 中完成的事情吗?如果是这样,我可以在 php 中进行管理。

4

1 回答 1

1

使用GROUP_CONCAT

SELECT l.locationname, group_concat(distinct c.classname)
FROM locations l
INNER JOIN classes c ON c.locationid = l.id 
group by l.locations
于 2013-07-17T16:03:07.420 回答