Postgresql postgres中表格的具体顺序

Postgresql postgres中表格的具体顺序,postgresql,Postgresql,我刚刚创建了一个临时表,如下所示: create temporary table userAndProductSales as select p.p_name, u.u_name, u.s_price, u.quantity from product p join userAndStates u on p.s_id = u.s_id 现在我想选择一些具有特定顺序的列。例如,我希望select为我提供以下输出: u_name1 p_name1 u_name1 p_name2 u_nam

我刚刚创建了一个临时表,如下所示:

create temporary table userAndProductSales as 
select p.p_name, u.u_name, u.s_price, u.quantity 
from product p 
join userAndStates u 
on p.s_id = u.s_id 
现在我想选择一些具有特定顺序的列。例如,我希望select为我提供以下输出:

u_name1 p_name1
u_name1 p_name2
u_name1 p_name3
u_name1 p_name4
...

u_name2 p_name1
u_name2 p_name2
u_name2 p_name3
....
等等等等。我如何得到这个输出?我试过以下几行:

select (select u_name from userandproductsales order by u_name), p_name from userandproductsales 
但我有个错误

更新:发现我加入的表没有提供我想要的正确数据。谢谢您的帮助。

以下是如何使用:


除非有理由创建一个临时表(比如需要在同一个会话中稍后访问它),否则您应该避免费用,只需从您的选择中执行
orderby
。例如:

select p.p_name, u.u_name, u.s_price, u.quantity 
from product p 
join userAndStates u 
on p.s_id = u.s_id
order by u.u_name, p.p_name; 

当得到一个错误时,你应该总是包含它。另外,添加您正在使用的PostgreSQL版本通常是一种很好的形式。另外,为什么要创建临时表?为什么不直接从您的查询中选择
orderby
,“orderby”没有提供我想要的正确输出。我正在制作一个web应用程序,所以我使用临时表来提高速度。这是个坏主意。当另一个会话添加新产品时会发生什么?您的“临时”表已过期。不要试图比PostgreSQL更聪明。除非你的数据库有很多负载(我的意思是每秒有1000个事务),否则就让Postgresql为你担心缓存策略吧。这个web应用程序非常简单,我确信没有其他会话可以添加新产品。我还必须在同一个会话中访问同一个表,因此使用临时表将有助于我在意见库中获得回复。这很接近,但我得到的输出是u_name1 p_name1,u_name1 p_name2。。。。。u_name 2 p_name 6、u_name 2 p_name 7等等。我需要p_名称与u_名称保持一致,就像我在问题中指出的那样。好的,您应该在表上提供一个数据示例storend。我实际上是在同一会话中访问表的,所以我确实需要一个临时表。order by没有给我想要的输出。它对u_名称的排序正确,但对p_名称的排序不符合我的要求to@deryl如果您能为这两个表提供DDL语句以及填充它们的插入,我可能会帮助社区回答您的问题。然后为查询提供所需的输出。
select p.p_name, u.u_name, u.s_price, u.quantity 
from product p 
join userAndStates u 
on p.s_id = u.s_id
order by u.u_name, p.p_name;