0

列の特定の行をマージしたいのですが、それができませんでした!

例えば、

次の3つのテーブルがあります。

  • 表 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

どうやってやるの ?

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 に答える