Можно ли объединить результаты строк одной таблицы в одну строку (со столбцами)? - PullRequest
2 голосов
/ 10 февраля 2011

Я, по сути, пытаюсь сделать следующее:

Таблица 1:

MemberID   |    selection 1     |    selection 2     |     selection 3
-----------------------------------------------------------------------
12345      |        A           |                    |                 
12345      |                    |       B            |                   
12345      |                    |                    |          C

Превращается в

Таблица 2:

MemberID   |    selection 1     |    selection 2     |     selection 3
-----------------------------------------------------------------------
12345      |        A           |       B            |        C        

Часть меня думает, что «СОЮЗ» - это путь, но я обычно полагаю, что он зарезервирован для столбцов в строках.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Моя первая мысль - трюк с агрегацией. Столбцы без данных NULL или просто пустые? Возможно, значения сортируются выше или ниже пустых столбцов. В этом случае:

ВЫБРАТЬ МАКС (столбец 1), МАКС (столбец 2), МАКС (столбец 3) ИЗ таблицы GROUP BY MemberID;

1 голос
/ 10 февраля 2011

Я думаю, вы пытаетесь иметь две обязанности в одном столе. как насчет

Таблица 1, члены

id

Таблица 2, выборы

id
member_id
selection

данные будут выглядеть так:

Таблица 1 (члены)

id
----
12345

Таблица 2 (выборы)

id    member_id    selection
--------------------------------
1     12345        a
2     12345        b
3     12345        c

тогда вы получите все варианты, по одному на строку, выполнив

SELECT members.id,
       selections.selection
FROM   members
JOIN   selections
ON     members.id = selections.member_id

или если вы просто хотите выбрать одного участника

SELECT member_id AS id,
       selection
FROM   selections
WHERE  member_id = ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...