Объединить несколько полей из одной таблицы - PullRequest
0 голосов
/ 09 августа 2011

Я хотел знать, можно ли сделать выборку в таблице, содержащей несколько полей, и объединить их в 1 результате:

Пример:

Таблица:

id
dayOne_City
dayTwo_City
dayThree_City

Результат: один столбец, содержащий строки всех городов (различно).

2) Мне лучше сделать представление, если у меня много запросов к этому конкретному списку?

3) я должен сделать 3 выбора с союзом?

Спасибо

Ответы [ 2 ]

5 голосов
/ 09 августа 2011

С вами должно быть все в порядке:

select dayOne_City from YourTable
UNION
select dayTwo_City from YourTable
UNION
select dayThree_City from YourTable

Однако вам следует пересмотреть свой дизайн, чтобы разрешить использование нескольких городов в магазинах, где бы вы ни находились. То есть создайте фактическое отношение «многие ко многим», создав промежуточную таблицу между YourTable и Cities.

0 голосов
/ 09 августа 2011
select concat_ws(',', id, dayOne_city, dayTwo_city, dayThree_city, etc...) as allInOne

Подробная информация об используемой функции здесь . Тем не менее, я должен спросить, почему ты это делаешь. Соединяя поля вместе, вы исключаете любую возможность надежного извлечения / разделения данных позже. Делайте такого рода «набухания» только в том случае, если вы никогда не планируете использовать отдельные части данных в другом месте на основе результатов этого запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...