MariaDB: Probleme beim SQL-Löschen mithilfe der Exist-Klausel
P粉811329034
2023-08-30 23:16:01
<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>
单表删除时表名后不能使用别名。
您需要使用
JOIN
而不是WHERE EXISTS
。