2012-05-03 85 views
0

我想合併列中的特定行,但我無法做到這一點!合併一列中的特定行sql

例如

我有三個表分別是:

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

我該怎麼做?

回答

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 
+0

我用mysql –

+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 
+0

這個答案是在OP編輯問題之前發佈的,「我希望表格看起來像這樣」。 –