我正在使用PostgreSQL编写一个SQL查询来从两次相同的sql结果中进行选择。例如,Postgresql:如何从sql结果中选择两次
SELECT a.id, b.id
FROM
(SELECT * FROM tableA) as a,
(SELECT * FROM tableA) as b
WHERE a.id = b.id+1
正如你可以看到下面的SQL语句已经执行了两次:
SELECT * FROM tableA
是否可以暂时代替存储运行相同的查询的SQL结果两次,因为这种查询可以复杂吗?
'tableA'与自身的连接怎么样?例如:'SELECT a.id,b.id from tableA a.id = b.id + 1'上的连接表b b' – Houari
“SELECT * FROM tableA”这行仅仅是一个例子,它可能是复杂的嵌套查询。 – chesschi
如果SELECT * from tableA'不能被视图替换,那么也可以使用[with]的子查询(http://www.postgresql.org/docs/current/static/queries-with .html)关键字 – Houari