如何将多行放到一行

时间:2014-04-02 00:38:50

标签: mysql

我有这样的mysql表:

enter image description here

基于表1,我想合并colomn mayor和minor的行与相同的NIP。结果如下:

enter image description here

如何制作?

3 个答案:

答案 0 :(得分:0)

所以sql应该很简单:

select * from Table1 t, Results r where t.nip = r.nip and t.mayor=r.mayor;

我不确定MySQL是否对列名称区分大小写,因此您可能必须将查询中的列/表名称大写。

我建议您阅读有关数据库连接的信息。 http://en.wikipedia.org/wiki/Join_(SQL)

如果不清楚,请告诉我。
你想要做的事情不应该是困难的,而且它是SQL的一个很好的开始实践。

答案 1 :(得分:0)

SELECT nid, GROUP_CONCAT(string SEPARATOR ', ') FROM table GROUP BY nid, bidang;

要了解更多信息,请点击此处:

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

How to use GROUP BY to concatenate strings in MySQL?

答案 2 :(得分:0)

在MSSQL中,我将FOR XML_PATH类型构造视为一个选项。对于MySQL使用GROUP_CONCAT

样本将是:

select
NIP, 
BIDANG, 
GROUP_CONCAT(DISTINCT Mayor) Mayor, 
GROUP_CONCAT(DISTINCT Minor) Minor
FROM NIPTableName
group by
NIP, 
BIDANG