2017-05-29 18 views
0

私は産業と名前の列を持つ人のテーブルを持っています。私は、同じ業種のレコード(人)がある私のテーブルには、次のクエリmysqlテーブルに異なる値を持つレコードが重複する

SELECT * 
FROM `people` 
ORDER BY `industry` ASC, `name` ASC 

を使用しての産業に基づいて値を取得することができます。それらを同じ出力の下に持つ可能性はありますか?以下のための は今のクエリは、私はこの方法でそれを持つことができますどのようにこの

industry1 
------ 
name1 

industry1 
------ 
name2 

industry2 
------ 
name 
---------------------------------------------------- 

を返しますか?

var num = 0; 
 
    for(var i = 0;i < r.length; i++) { 
 
    var country = r[i].country; 
 
    if(i < r.length-1) nextCountry = r[i+1].country; 
 
    
 
    
 
    
 
    if(lastCountry != country && nextCountry == country) { 
 
     num = 0; 
 
    } 
 
    %> 
 
    
 
    <div class="<%= lastCountry %> <%= country %> <%= nextCountry %>"></div> 
 
     <div class="contact-list"> 
 
     <div class="contact-info contact-padding"> 
 
      <% if(r[i].industry) { %> <h2 class="h-style"><%= r[i].industry %></h2> <% }%> 
 
      <span class="name"><%= r[i].name %> <% if(r[i].segment) { %>&#40;<%= r[i].segment %>&#41;<% }%></span> 
 
      <span class="phone"><%= r[i].phone %></span> 
 
      <span class="email"><%@ "generic_email" %></span> 
 
     </div> 
 
     </div> 
 
    
 
    <% 
 
    \t num++; 
 
    var lastCountry = country; 
 
    } 
 

 
    %>

industry1 
------ 
name1 
name2 

industry2 
------ 
name 
これは私が構築され、データを消費する図であり、それは単に各レコードのコードの同じ部分を繰り返します。私はGROUP BYを使用しようとすると、それだけで

ONE OF THE INDUSTRIES 

name1, name2,name3,name4, ... 
phone number 
email 
+0

を使用すると、1つの列に結果を表示する手段はname ASC BY業界BY人 グループからSELECT

* 、名前 ORDER? –

+0

@FahadAnjumはい、同じ業界タグを持つ人々は1つの列にグループ化する必要があります – k185

+0

真剣に、アプリケーションコード – Strawberry

答えて

0

を返し、私ははっきりとあなたの条件を理解していれば、あなたは

SELECT `industry`,GROUP_CONCAT(`name`) as name 
FROM `people` 
GROUP BY `industry` 
ORDER BY `industry` ASC 

ようなものが必要これは、あなたindustrycommaによって連結nameあたり1行を与えるだろう。 separatorとパイプやスペースが異なるようにするには、GROUP_CONCAT(name SEPARATOR <custom separator>)

+0

GROUP_CONCATのデータ表示の問題を扱うことを真剣に考えてください。それは他のすべての業界を排除し、最後のものだけを保持します。結果として、私はちょうどそれの下にすべての名前を持つ1つの業界を持っています。助けなかった – k185

+0

'それは他のすべての産業を排除し、最後のものだけを保つ' =>あなたは 'group by 'を使っているときに' last'や 'first'と呼ばれるものは何もありません。すべての「別個の」産業、すなわち「産業1」、「産業2」の行が表示されます。質問のサンプルデータと期待される出力を表形式で追加します。 – Utsav

+0

ビューを更新しました – k185

0

これらの2つの列にGROUP BYを使用します。 industry ASC、

関連する問題