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行で結果を得るにはどうすればよいですか? (重複する位置データを取得せずに、classA と classD を含む例 locationA)

これはまっすぐな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 に答える