我有一个包含一系列行业和名称的人员表。我可以使用以下查询
获取基于行业的值SELECT *
FROM `people`
ORDER BY `industry` ASC, `name` ASC
在我的表格中有相同行业的记录(人)。是否有可能将它们置于相同的输出下? 现在查询返回此
industry1
------
name1
industry1
------
name2
industry2
------
name
----------------------------------------------------
我怎么能以这种方式拥有它?
industry1
------
name1
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) { %>(<%= r[i].segment %>)<% }%></span>
<span class="phone"><%= r[i].phone %></span>
<span class="email"><%@ "generic_email" %></span>
</div>
</div>
<%
num++;
var lastCountry = country;
}
%>
&#13;
这是我构建和使用数据的视图,它只是为每条记录重复相同的代码片段。如果我尝试使用GROUP BY,它只返回
ONE OF THE INDUSTRIES
name1, name2,name3,name4, ...
phone number
email
答案 0 :(得分:0)
如果我清楚地理解你的要求,你需要像
这样的东西SELECT `industry`,GROUP_CONCAT(`name`) as name
FROM `people`
GROUP BY `industry`
ORDER BY `industry` ASC
这将为1
每行industry
行和name
comma
连接。如果您想要不同的separator
管道或空格,请使用GROUP_CONCAT(name SEPARATOR <custom separator>)
答案 1 :(得分:0)
只需对这两列使用GROUP BY。
SELECT *
来自人民
GROUP BY行业,名称
ORDER BY industry
ASC,name
ASC