MariaDB: Probleme beim SQL-Löschen mithilfe der Exist-Klausel
P粉811329034
P粉811329034 2023-08-30 23:16:01
0
1
449
<p>Ich habe diese Auswahl in MariaDB ausgeführt und sie hat wie erwartet funktioniert, es war nur eine Auswahl mit <code>exists</code>: </p> <pre class="brush:php;toolbar:false;">select * from pred_loan_defaults d wo existiert (wählen Sie 1 aus pred_loan_defaults d2 wobei d.exec_id = d2.exec_id und d.loan_identifier = d2.loan_identifier und d2.default_status = 1 und d.prediction_date > Sortieren nach Kreditkennung, Vorhersagedatum</pre> <p>Jetzt versuche ich, die ausgewählten Zeilen zu löschen, also habe ich die Anweisung angepasst: </p> <pre class="brush:php;toolbar:false;">löschen aus pred_loan_defaults d wo existiert (wählen Sie * aus pred_loan_defaults d2 wobei d.exec_id = d2.exec_id und d.loan_identifier = d2.loan_identifier und d2.default_status = 1 und d.prediction_date > d2.prediction_date);</pre> <p>Aber ich erhalte eine Fehlermeldung:</p> <blockquote> <p>SQL-Fehler [1064] [42000]: (conn=6) Es liegt ein Fehler in Ihrem SQL vor Syntax; schauen Sie im Handbuch Ihres MariaDB-Servers nach Version mit korrekter Syntax in der Nähe von „d</p>“ </blockquote> <p><code>delete</code> Was stimmt mit der Aussage nicht? </p>
P粉811329034
P粉811329034

Antworte allen(1)
P粉752812853

单表删除时表名后不能使用别名。

您需要使用JOIN而不是WHERE EXISTS

delete d
FROM pred_loan_defaults AS d
JOIN prod_loan_defaults AS d2
    ON d.exec_id = d2.exec_id 
        AND d.loan_identifier = d2.loan_identifier 
        AND d.prediction_date > d2.prediction_date
WHERE d2.default_status = 1
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage