合并一列sql中的特定行

时间:2012-05-03 03:55:01

标签: mysql

我想合并列中的特定行,但我不能这样做!

例如,

我有三张表:

  • 表1 ID, Name1
  • 表2 ID, Table1Id, Table3Id
  • 表3 ID, Name2

表格中的数据如下:

Table 1                     table 2                     Table 3

ID - Name             ID- Table1Id- Table2ID             ID - Name
1 - A                       1 - 1 - 1                     1 - AE
2 - B                       2 - 1 - 2                     2 - AF
                            3 - 2 - 1

当我加入时,表格将是:

加入表:

    table1Name - Table3Name
             A - AE
             A - AF
             B - AE

我希望该表看起来像>>>

Table
    Table1Name - Table3Name
        A - AE, AF
        B - AE

我该怎么做?

2 个答案:

答案 0 :(得分:2)

select tb1.name nameTb1, tb3.name nameTb3
  from table2 tb2
 inner join table1 tb1 on tb2.Table1Id = tb1.id
 inner join table3 tb3 on tb2.Table3Id = tb3.id

答案 1 :(得分:0)

您使用的是什么数据库?

尝试查看CONCAT

所以在选择字段上会出现这样的情况。

CONCAT(TABLE1.NAME, '-', TABLE3.NAME)

对于这种情况,这是您的代码

SELECT CONCAT_WS('-',table1.name , GROUP_CONCAT(table3.name SEPARATOR ',')) tablename
  FROM table2
 INNER JOIN table1 ON table2.Table1Id = table1.id
 INNER JOIN table3 ON table2.Table3Id = table3.id
GROUP BY table1.name