SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.09.2008 16:32:37

Magz
Гуру
Откуда: Москва
Зарегистрирован: 18.09.2007
Сообщений: 112

Конкатенация записей

Добрый день. Хочу написать запрос, типа:


SELECT a.PersonName, (SELECT ??FUNC??(b.PhoneNum) FROM b WHERE b.id_key = a.id) FROM a
 

где ??FUNC?? - некая функция, которая вернет конкатенацию по заданному полую всей выборки. Объясню на примере, чего хочу получить.
Есть таблица а (человек):
id - integer
PersonName - varchar(100)
Есть таблица b (телефон):
id - integer
PhoneNum - varchar(10)
id_key - integer, ссылка на a.id.
У человека может быть один или несколько телефонов. Хочется в одном запросе получить два поля:
"Имя" и "Список всех телефонов, записанных через разделитель".
Возможно ли такое?

Неактивен

 

#2 30.09.2008 16:34:57

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Конкатенация записей

см. GROUP_CONCAT(b.PhoneNum SEPARATOR ',')
http://dev.mysql.com/doc/refman/5.1/en/ … oup-concat

Неактивен

 

#3 30.09.2008 16:42:01

Magz
Гуру
Откуда: Москва
Зарегистрирован: 18.09.2007
Сообщений: 112

Re: Конкатенация записей

Огромное спасибо! В моем справочнике не было этой функции, добавил в закладки!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson