SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 13.11.2011 15:21:23

kravcneger
Участник
Зарегистрирован: 10.06.2011
Сообщений: 8

Запрос с объединением.

Здравствуйте , уважаемые граждане.
Помогите пожалуйста разрешить следующую задачу.

Есть 2 таблицы A(id) B(aid,number). Они имеют связь A.id  B.aid , один ко многим.
Нужно написать такой запрос который бы позволил мне получить для каждого объекта из таблица A , все  номера(number) имеющие к нему отношение.

Но нужно это сделать таким образом чтобы на выходе получалось столько же записей , сколько их в таблице A.

Как работает обычный запрос с LEFT JOIN

Select A.id,B.number
from A
LEFT JOIN B on A.id=B.aid.


В результате если в таблице А  одна запись ('1') а в таблице B четыре записи (1,1)(1,2)(1,3)(1,4)
На выходе будет результат
(1,1)(1,2)(1,3)(1,4)
А мне необходимо получить нечто такое (1,1:2:3:4) , возможно ли средствами sql как то сконкатентить результаты  из второй таблицы и поместить их в одну запись.
Спасибо за внимание.

Неактивен

 

#2 13.11.2011 15:35:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Запрос с объединением.

Select A.id, group_concat(B.number separator ':')
from A LEFT JOIN B on A.id=B.aid group by A.id;

Неактивен

 

#3 13.11.2011 15:43:35

kravcneger
Участник
Зарегистрирован: 10.06.2011
Сообщений: 8

Re: Запрос с объединением.

Большое спасибо.

Неактивен

 

Board footer

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