2016-07-26 2 views
2

Ниже моя таблица, пожалуйста, вы можете обратиться я использую SQLотображения нескольких строк в одной строке в SQL запросе

сотрудника стол:

emp_id(primary key) - emp_name   - emp_mobile 
1       raju     123456899 
2       hari     454654562 
3       aravindth    545485454 
4       siva     549855291 

employeeTechnology стол:

emptech_id(primary key) - emp_id(foreign key) - technology_id(foreign key) 
1       1        1 
2       1        2 
2       1        5 
3       2        1 
4       2        3 
5       3        4 
6       3        5 
7       4        3 
8       4        4 

технология t Уметь:

technology_id(primary key) - tech_name 
1         java-j2ee 
2         Dot.net 
3         DBA-SQL 
4         big-data 
5         SAP 

Я хочу вывести так:

emp_id    - tech_name 
1      java-j2ee/Dot.net/SAP 
2      java-j2ee/DBA-SQL 
3      big-data/SAP 
4      DBA-SQL/big-data 

Я уже пробовал следующее: select e.emp_id,t.technology_id from employee e,employeeTechnology et,technology t where e.emp_id =et.emp_id and et.technology_id = t.technology_id

+2

Какая СУБД для этого? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

+0

Я использую сервер sql – venkat

+1

@J. Chomel: Я пробовал это, выбрать e.emp_id, t.technology_id от сотрудника e, employeeTechnology et, технология t где e.emp_id = et.emp_id и et.technology_id = t.technology_id – venkat

ответ

1

Вы должны использовать STUFF функции

SELECT 
    e.emp_id, STUFF((SELECT '/' + t.tech_name 
    FROM 
     dbo.employeeTechnology et 
    INNER JOIN 
     dbo.technology t 
    ON et.technology_id = t.technology_id 
    WHERE 
     et.emp_id = e.emp_id 
    FOR XML PATH('')), 1, 1, '') 
FROM 
    employee e 
+0

Большое вам спасибо, его работа ,,,,,,,, – venkat

0

Я попытался приведенный выше код, но он не работает для меня в MySQL.

SELECT e.emp_id, GROUP_CONCAT(DISTINCT t.`tech_name` ORDER BY `et`.`technology_id` ASC SEPARATOR '/') employee_name FROM employee e, employeeTechnology et, technology t WHERE e.emp_id = et.emp_id AND et.technology_id = t.technology_id GROUP BY `e`.`emp_id` 

Теперь я пробовал работать. У меня вопрос, что MySQL не поддерживает функцию STUFF?

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