2017-01-28 6 views
0

Ich möchte neue Tabellen in der Abfrage erstellen und sie am Ende für eine abschließende Abfrage verwenden. Ich erinnere mich nicht, was die Syntax ist und kann es nirgends finden. (Hier ist ein einfaches Beispiel nur zur Illustration).Alias ​​eine POSTGRES SELECT-Anweisung

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 –

Antwort

3

Sie suchen CTE's

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

cool danke. Wird in 10 Minuten akzeptiert. Muss ich jetzt beitreten, um Daten aus allen Tabellen zu verwenden? oder kann ich sagen, wählen Sie phones.phone, emails.email –

+1

@WilliamFalcon - Es hängt von der Anforderung ab. Ihre aktuelle Beispielabfrage macht keinen Sinn. Fügen Sie Beispieldaten und erwartetes Ergebnis in der nächsten Frage hinzu. –

+0

Ja, es ist ein sehr vereinfachtes Beispiel für die Illustration. Die as-Abfragen sind ziemlich komplex und beinhalten eine Menge Joins. Es ist zu einigen Berechnungen (Gruppe von Benutzern pro Monat, siehe Wachstumsrate, etc ...) –

2

Sie suchen nach einem gemeinsamen Tabellenausdruck (CTE). Diese werden eingeführt with mit:

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

Ihr Beispiel wählt scheinen nicht besonders nützlich, aber ich nehme an, sie sind nur zur Veranschaulichung.