0

我想合并列中的特定行,但我做不到!

例如,

我有三个表,它们是:

  • 表 1ID, Name1
  • 表 2ID, Table1Id, Table3Id
  • 表 3ID, 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

我怎样才能做到这一点 ?

4

2 回答 2

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
于 2012-05-03T04:03:46.847 回答
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
于 2012-05-03T04:01:21.413 回答