Как сделать запрос к таблице, созданной с помощью выбора? - PullRequest
1 голос
/ 18 января 2009

Как пример:

SELECT name, address, phone FROM USER;

Генерирует таблицу

name | address | phone 
...  |   ...   |  ...

Как я могу использовать эту сгенерированную таблицу, чтобы сделать к ней еще один запрос?

Например:

SELECT count(address) FROM (SELECT name, address, phone, from user);

Я знаю, что это не лучший пример, но есть ли способ сделать это?

Ответы [ 4 ]

5 голосов
/ 18 января 2009

Используйте тот же синтаксис, но присвойте производной таблице псевдоним

SELECT count(subadd.address) 
FROM (SELECT name, address, phone, from user) as subadd;
1 голос
/ 18 января 2009

Лучший способ - создать представление:

CREATE VIEW my_view AS SELECT name, address, phone FROM USER;

Тогда вы можете подать в суд на стол:

SELECT count(address) FROM my_view;
0 голосов
/ 18 января 2009

Я бы не использовал временные таблицы. Я бы, наверное, пошел с созданием представления. Однако, я бы запустил объяснение, чтобы увидеть, что быстрее, если нужна скорость.

0 голосов
/ 18 января 2009

Вы можете использовать временные таблицы:

create temporary table t select name, address, phone;
select count(address) from t;

Немного характеристик:
- таблица будет доступна только текущему потоку,
- таблица будет удалена, когда текущий поток будет закончен
- для создания такой таблицы требуются соответствующие права

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