2016-05-29 13 views
0

Ist es möglich, eine Ansicht zu erstellen, die so genannte first_view und in einer anderen Ansicht second_view die erste genannt genannt wird? This is the original question.Anrufen aus einem anderen eine materialisierte Ansicht materialisierte Ansicht in Postgres

Dies ist die erste Ansicht:

CREATE MATERIALIZED VIEW first_view 
AS SELECT atable.variable_one, btable.another_variable, ctable.variable_x 
FROM a atable, b btable, c ctable 

Damit f (a, b, c) kann Ansicht in f (ALL), die f (a, b, c) mit f (m bezeichnet werden) mit Aggregatfunktionen.

+0

Ja, ein MVIEW kann aus einem anderen MVIEW auswählen. Was genau ist dein Problem? Was ist der Fehler, den Sie bekommen? Wie sieht der zweite MVIEW aus? Und warum fügst du deine Tische nicht richtig an? –

+0

@a_horse_with_no_name Dies war eine Prüfungsfrage. Theoretisch ist es so theoretisch, wie würde das Verbinden funktionieren? Dies sind alles fiktive – firepro20

+0

* In der Theorie *, Abfragen, Ansichten, Tabellen und materialisierte Ansichten sind alle Beziehungen, und sollte für DML SQL austauschbar sein. –

Antwort

1

Die Antwort ist so einfach, dass ich davon ausgehen, dass ich verstehe Ihre Frage nicht richtig:

Verwenden Sie einfach die erste MVIEW auf die gleiche Weise in der zweiten MVIEW andere Tabelle oder Ansicht verwenden:

create materialized view first_view 
as 
select a.column_one, b.column_two, c.column_three 
from table_a a 
    join table_b b on a.id = b.aid 
    join table_c c on b.id = c.bid; 

create materialized view second_view 
as 
select x.some_column, f.* 
from other_table x 
    join first_view f on x.id = f.column_one; 
+0

Oh, jetzt verstehe ich. Vielen Dank @a_horse_with_no_name – firepro20