0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 17
|
|
1 | |
Как использовать один запрос вместо двух?19.08.2016, 13:53. Показов 431. Ответов 5
Метки нет Все метки)
(
В CMS есть различные типы внутренних объектов.
У каждого объекта есть основные поля, общие для всех объектов (таблица objects). И дополнительные поля (таблица content). Столбцы таблицы objects есть поля объекта, тут все просто: objects(id, name,..., updated, created) Столбцы же таблицы content имеют фиксированные названия: content (oid, field, value), в столбце field хранится дополнительное поле, а в value -- его значение. Соответственно, при выборе по id из objects результатом запроса является строка, а при выборе из content -- таблица, где столбец oid повторяется: oid field value 3 mail [BLOB - 28 Байт] 3 fio [BLOB - 16 Байт] 3 date [BLOB - 10 Байт] 3 ip [BLOB - 13 Байт] Можно ли при выборе всех полей объекта использовать всего один запрос (а не выбирать сначала основные поля, а потом дополнительные)? Хочу в ответе получать строку, а не таблицу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
19.08.2016, 13:53 | |
Ответы с готовыми решениями:
5
Использовать один блок try{} вместо двух, сохраняя производительность Связанный список - использовать в функции один указатель вместо двух
Как использовать один Enum в двух проектах по связной ссылке? |
340 / 236 / 113
Регистрация: 12.05.2016
Сообщений: 642
|
||||||
19.08.2016, 17:52 | 2 | |||||
Канеш можно, для этого SQL и придумали, почитайте на досуге про соединения таблиц aka JOIN-ы
0
|
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 17
|
||||||
19.08.2016, 20:24 [ТС] | 3 | |||||
С джойнами знаком, конструкция MAX....GROUP BY тоже вроде понятна.
А вот о добавлении произвольных полей в запрос я и не подозревал:
0
|
340 / 236 / 113
Регистрация: 12.05.2016
Сообщений: 642
|
|
20.08.2016, 10:48 | 4 |
Если набор полей у вас заранее неопределён, то разворачивать в строку не имеет практического смысла.
Как вы потом собираетесь эту строку использовать? На клиенте ГОРАЗДО проще получить нормальный построчный дата сет из таблицы с полями для объекта и обработать его в цикле. Чем городить огород с неизвестного размера строкой, да плюс еще с неизвестными названиями колонок. Это теоретически можно сделать собрав динамический запрос в хранимке, но непонятен конечный бизнес кейс использования полученных данных.
0
|
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 17
|
|||||||||||
20.08.2016, 12:46 [ТС] | 5 | ||||||||||
У меня так и сделано:
0
|
1312 / 944 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
|
|
22.08.2016, 12:48 | 6 |
Streuner, GROUP_CONCAT вам в помощь
0
|
22.08.2016, 12:48 | |
Помогаю со студенческими работами здесь
6
Как можно использовать один и тот же скрипт VideoView на двух лайоутах? Один запрос к базе вместо 4
Сделать вместо двух бордеров один Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |