2017-01-28 88 views
0

我想在查詢中創建新表並在最後使用它們作爲最終查詢。我不記得語法是什麼,在任何地方都找不到它。 (這裏只是一個基本的例子)。別名POSTGRES選擇語句

phones as 
    (
     SELECT phone_number from customers 
    ) 


emails as 
    (
     SELECT emails from customers 
    ) 

// do something with both 
+0

https://www.postgresql.org/docs/current/static/queries-with.html –

回答

3

您正在尋找CTE's

With phones as 
    (
     SELECT phone_number from customers 
    ) 
,emails as 
    (
     SELECT emails from customers 
    ) 
select * from phones--/emails 
+0

涼爽的感謝。將在10分鐘內接受。我是否需要現在加入以使用所有表中的數據?或者我可以說選擇phones.phone,emails.email –

+1

@WilliamFalcon - 這取決於要求。您當前的示例查詢沒有意義。在下一個問題中添加樣本數據和預期結果。 –

+0

是的,這是一個非常簡單的例子。 as查詢相當複雜,涉及一些連接。這是做一些計算(按用戶每月分組,看看增長率等...) –

2

您正在尋找一個通用表達式(CTE)。這些使用with介紹:

with phones as (
     SELECT phone_number from customers 
    ), 
    emails as (
     SELECT emails from customers 
    ) 
select . . .; 

你的榜樣選擇似乎並不特別有用,但我認爲他們只是爲了說明。