Löschen Sie aus der Tabelle Einen Beitritt auf dem Tisch Eine Rotverschiebung in

Ich versuche zu schreiben, die folgende MySQL-Abfrage in PostgreSQL 8.0 (insbesondere mithilfe der Rotverschiebung):

DELETE t1 FROM table t1
LEFT JOIN table t2 ON (
    t1.field   = t2.field AND
    t1.field2  = t2.field2
)
WHERE t1.field > 0

PostgreSQL 8.0 nicht unterstützt DELETE FROM table USING. Die Beispiele in der docs sagen, dass können Sie auf Spalten anderer Tabellen in der where-Klausel, aber das funktioniert hier nicht da ich bin bei auf die gleiche Tabelle, die ich bin löschen aus. Das andere Beispiel ist eine untergeordnete select-Abfrage, aber der Primärschlüssel der Tabelle, mit dem ich arbeite, hat vier Spalten, so ich kann nicht einen Weg finden, um diese entweder.

  • Welche Fehler/Ergebnisse sind Sie zu sehen. Erste, was ich sehe, scheint falsch mit deiner Abfrage ist, dass es sein sollte "LÖSCHEN" zu entfernen ("t1")
  • Ja sicher, das ist eine mysql-Abfrage, die ich nicht erwarten, dass es nur funktioniert in postgresql. Ich habe nicht in der Lage zu finden ein äquivalent in Postgresql 8.0 an alle. Die syntax für das löscht ist sehr minimal.
  • BTW: was ist table ? ein keyword ?
  • Sind Sie sicher, dass der MySQL-Abfrage zu tun, was Sie wollen? Die LEFT JOIN scheint völlig nutzlos.
  • table ist der name der Tabelle.
  • Ja, du hast Recht, den linken beizutreten, ist nutzlos. Beitreten wäre das richtige Verhalten. Ich bin die Migration von code, der geschrieben wurde, vor Ewigkeiten.
  • Warum sollte jemand seine Tabelle table ?
  • Sie sollten Aufschluss über den genauen Zweck der Abfrage. Die kaputte MySQL-Abfrage nicht schneiden Sie es.
  • Sicher. Der Zweck ist zum löschen von Datensätzen aus einer Tabelle mit einer where-Klausel, bezieht sich auf andere Spalten in derselben Tabelle. Die volle, unsimplified Anwendungsfall ist, dass ich möchte, um Datensätze zu entfernen, wo es einem anderen Datensatz in der Tabelle mit 3 Felder-matching, und 1 Feld fällt in einen Bereich von 60.
  • Die Beschreibung ist ein wesentlicher Bestandteil der Frage und sollte nicht versteckt in den Kommentaren, Bearbeiten Sie die Frage und das Beispiel mit dem text. Dies muss auch die definition der Tabelle. Zu identifizieren "another record" wir müssen den Primärschlüssel. Wir müssen auch sehen NOT NULL Einschränkungen. Mit 37k XP Sie sollten wissen, die Grundlagen hier ..

InformationsquelleAutor marcog | 2014-04-30
Schreibe einen Kommentar