如何连接复合表

时间:2013-07-17 16:00:52

标签: mysql select

我有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行结果? (ex locationA包含classA和classD,没有获取重复的位置数据)

这是直接MySQL无法完成的吗?如果是这样,我可以在php中管理。

1 个答案:

答案 0 :(得分: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