2012-05-03 4 views
0

Я хочу объединить определенные строки в столбце, но я не мог этого сделать!Объединить определенные строки в одном столбце sql

Для примера,

У меня есть три таблицы, которые являются:

  • Таблица 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 

Как я могу это сделать?

ответ

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 отредактировал вопрос с помощью «Я хочу, чтобы таблица выглядела так». –

Смежные вопросы