MariaDB:exist 句を使用した SQL 削除の問題
P粉811329034
2023-08-30 23:16:01
<p>この選択を MariaDB で実行したところ、期待どおりに機能しました。これは、<code>exists</code>: </p> を含む単なる選択でした。
<pre class="brush:php;toolbar:false;">select * from pred_loan_defaults d
存在する場所 (pred_loan_defaults d2 から 1 を選択)
ここで、d.exec_id = d2.exec_id および d.loan_identifier = d2.loan_identifier
および d2.default_status = 1 および d.prediction_date > d2.prediction_date)
ローン識別子、予測日</pre>による順序
<p>ここで、選択した行を削除しようとしているので、ステートメントを変更しました: </p>
<pre class="brush:php;toolbar:false;">pred_loan_defaults から削除 d
存在する場所 (pred_loan_defaults d2 から * を選択)
ここで、d.exec_id = d2.exec_id および d.loan_identifier = d2.loan_identifier
d2.default_status = 1 および d.prediction_date > d2.prediction_date);</pre>
<p>しかし、エラーが発生します: </p>
<ブロック引用>
<p>SQL エラー [1064] [42000]: (conn=6) SQL にエラーがあります
構文。MariaDB サーバーのマニュアルを確認してください。
'd</p> 付近の正しい構文を使用したバージョン
</blockquote>
<p><code>delete</code> ステートメントのどこが間違っていますか? </p>
単一のテーブルを削除する場合、テーブル名の後にエイリアスを使用することはできません。
リーリーWHERE EXISTS
の代わりにJOIN
を使用する必要があります。