Виртуальные таблицы PHP/MySQL «на лету»? [закрыто]MySql

Форум по Mysql
Ответить
Anonymous
 Виртуальные таблицы PHP/MySQL «на лету»? [закрыто]

Сообщение Anonymous »

Несколько лет назад я писал код в Gembase. У него была чрезвычайно полезная функция, которая позволяла нам создавать виртуальную таблицу в коде, запрашивать столько таблиц в реальной базе данных, сколько нам нужно, и сохранять результаты каждого запроса в виртуальной таблице. Все делается на ходу. Мы могли манипулировать данными в виртуальной таблице так, как нам хотелось, для любых целей, без необходимости повторного запроса к реальной базе данных или риска для реальных данных.
Мой вопрос заключается в следующем: существует ли аналогичная функция, которая позволяет нам делать это в PHP/MySQL? Я знаю о создании представлений в базе данных MySQL, но не верю, что это имеет такую ​​же функциональность. Я понимаю, что в моем PHP-коде могут быть потенциально сложные запросы MySQL с использованием JOIN и других вложенных запросов, но (а) почему-то это не кажется таким эффективным, (б), вероятно, менее интуитивно понятно для кодирования и еще сложнее отлаживать/настраивать для кого-то другого, и (в) я могу захотеть манипулировать данными немного другим способом в дальнейшем по коду, вероятно, требуя еще одного запроса и еще одного обращения к базе данных. Если бы у меня были нужные мне данные в виртуальной таблице одним нажатием, это устранило бы все эти хлопоты.
В этом была прелесть возможности создавать виртуальную таблицу в коде на лету. Пример:
БАЗА ДАННЫХ
Поля таблицы A A1 A2 A3
Поля таблицы B B1 B2 B3 B4
Поля таблицы C C1 C2
КОД (очевидно, упрощенный)

Код: Выделить всё

create_vt MY_VT
field VT.A1
field VT.A3
field VT.B2
field VT.C1
field VT.C2
field VT.D1

select * from table A [where ...]
select * from table B [where ...]
select * from table C [where ...]

insert into MY_VT A.A1 as VT.A1
insert into MY_VT A.A3 as VT.A3
insert into MY_VT B.B2 as VT.B2
... и вот у вас есть все ваши данные, готовые к сортировке и манипулированию различными способами в любом месте этого кода без каких-либо дополнительных запросов к базе данных. Кроме того, поле VT.D1, например, можно использовать для хранения содержимого A1 * A3 или чего-то более сложного (как это часто бывает), а затем сортировать/отображать данные конечному пользователю на основе вновь созданного VT.D1 без каких-либо ужасно сложных (и потенциально тяжелых) запросов MySQL.
Стив

Подробнее здесь: https://stackoverflow.com/questions/797 ... fly-tables
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»