Innerer Join innerhalb der update-Anweisung in PostgreSQL

7

Ich habe eine Tabelle namens temp_table, die aus folgenden Zeilen besteht:

%Vor%

Jetzt muss ich die Ergebnisspalte mit der Anzahl (*) von colb aktualisieren. Dafür versuche ich folgende Abfrage:

%Vor%

Wählen Sie distinct colb und result aus temp_table:

%Vor%

Ausgabe erhalten:

%Vor%

Aber die erwartete Ausgabe ist:

%Vor%

Ich bekomme nicht, wo ich in meiner Frage falsch liege? Bitte hilf mir. Danke

    
Meem 26.06.2014, 10:30
quelle

1 Antwort

24

Sie sollten die zu aktualisierende Tabelle nicht in der from -Klausel wiederholen. Dadurch wird ein kartesischer Self-Join erstellt.

Zitat aus dem Handbuch:

  

Beachten Sie, dass die Zieltabelle nicht in der from_list erscheinen darf, außer Sie beabsichtigen einen Self-Join (in diesem Fall muss er in der from_list mit einem Alias ​​erscheinen)

(Betonung meiner)

Leider unterstützt UPDATE keine expliziten Joins mit dem Schlüsselwort JOIN . So etwas sollte funktionieren:

%Vor%     
a_horse_with_no_name 26.06.2014, 10:37
quelle

Tags und Links