Допустим, есть таблица «Люди» в самом примитивном виде:
+-----------+-------------+
| person_id | person_name |
+-----------+-------------+
| 1 | John Smith |
| ..... | ..... |
Также есть некая таблица «Дополнительные данные», имеющая следующий вид:
+-----------+-----------+------------+
| person_id | data_type | data |
+-----------+-----------+------------+
| 1 | e-mail | ab@сd.ru |
| 1 | e-mail | [email]ef@gh.ru[/email] |
| 1 | phone | 12-34 |
| 1 | phone | 23-24 |
| 1 | phone | 14-41 |
| ..... | ..... | ..... |
То есть в данную таблицу заносятся различные дополнительные параметры о людях, которые у них могут не быть, а могут и быть, при этом в неопределённом количестве. В принципе, это можно записать в одном поле в таблице «Люди» через запятую, но начальник хочет, чтобы под каждый экземпляр параметра было отдельное поле (на самом деле, есть и другие более сложные параметры для более сложных объектов – «Люди» приведены только в качестве примера).
Итак вопрос (спасибо всем, кто до него дочитал): можно ли одним select-ом получить что-нибудь типа
+-------------+--------------------+---------------------+
| person_name | e-mail | phone |
+-------------+--------------------+---------------------+
| John Smith | [email]ab@cd.ru[/email], [email]ef@gh.ru[/email] | 12-34, 23-24, 14-41 |
или хотя бы:
+-------------+----------------------------+----------------------------+
| person_name | ?????? | ????? |
+-------------+----------------------------+----------------------------+
| John Smith | e-mail: [email]ab@cd.ru[/email], [email]ef@gh.ru[/email] | phone: 12-34, 23-24, 14-41 |
Я пока не представляю, как вписать в одну строку данные одной записи из таблицы X и нескольких записей таблицы Y.