Запрашивать несколько таблиц и возвращать только один массив? - PullRequest
0 голосов
/ 27 августа 2009

Привет всем, мне интересно, как лучше всего сделать следующее:

Запрос до 5 таблиц (зависит от ввода пользователя) возвращает результаты и возвращает один массив . Допустим, я запрашиваю таблицу A и сохраняю результаты в качестве дескриптора результата (возврат из pg_query () fn). Должен ли я продолжать преобразовывать их в массив, а затем продолжать добавлять к ним результаты последующих запросов? Если так, могу ли я обойтись без использования функции array_merge ()?

Ответы [ 3 ]

1 голос
/ 27 августа 2009

Звучит так, как вы хотите UNION.

0 голосов
/ 27 августа 2009

Использование UNION может быть ответом, только если ваши результаты будут низкими. UNION немного обременяют сервер БД, и некоторым БД сложно их оптимизировать. С помощью процедуры сохранения или создания 5 запросов затем слияние массивов позволит серверу БД кэшировать некоторые результаты и повысить производительность БД.

Если результирующий набор будет низким и не будет много вызовов, тогда использование UNION должно подойти.

0 голосов
/ 27 августа 2009

используйте объединение:

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