如何查询select生成的表?

时间:2009-01-18 18:31:50

标签: sql mysql

举个例子:

SELECT name, address, phone FROM USER;

生成表格

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

如何使用此表生成另一个查询?

例如:

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

我知道这不是最好的例子,但有没有办法做到这一点?

4 个答案:

答案 0 :(得分:5)

使用相同的语法,但为派生表提供别名

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

答案 1 :(得分:1)

最好的方法是创建一个视图:

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

然后你可以把它作为一张桌子起诉:

SELECT count(address) FROM my_view;

答案 2 :(得分:0)

您可以使用临时表:

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

几个特点:
- 该表只能由当前线程访问,
- 当前线程完成后,表格将被删除 - 创建此类表需要适当的权限

答案 3 :(得分:0)

我会避免使用临时表。我可能会去创建一个视图。但是,我会做一个解释,看看如果需要速度会更快。