MariaDB : problèmes liés à la suppression SQL à l'aide de la clause exist
P粉811329034
P粉811329034 2023-08-30 23:16:01
0
1
401
<p>J'ai exécuté cette sélection dans MariaDB et cela a fonctionné comme prévu, c'était juste une sélection avec <code>exists</code>: </p> <pre class="brush:php;toolbar:false;">select * from pred_loan_defaults d où existe (sélectionnez 1 dans pred_loan_defaults d2 où d.exec_id = d2.exec_id et d.loan_identifier = d2.loan_identifier et d2.default_status = 1 et d.prediction_date > trier par identificateur_prêt, date_prédiction</pre> <p>Maintenant, j'essaie de supprimer les lignes sélectionnées, j'ai donc adapté l'instruction : </p> <pre class="brush:php;toolbar:false;">supprimer de pred_loan_defaults d où existe (sélectionnez * dans pred_loan_defaults d2 où d.exec_id = d2.exec_id et d.loan_identifier = d2.loan_identifier et d2.default_status = 1 et d.prediction_date > d2.prediction_date);</pre> <p>Mais j'obtiens une erreur :</p> <blockquote> <p>Erreur SQL [1064] [42000] : (conn=6) Il y a une erreur dans votre SQL Syntaxe ; consultez le manuel de votre serveur MariaDB Version utilisant la syntaxe correcte proche de 'd</p> </blockquote> <p><code>delete</code> Quel est le problème avec l'instruction ? </p>
P粉811329034
P粉811329034

répondre à tous(1)
P粉752812853

Lors de la suppression d'une seule table, les alias ne peuvent pas être utilisés après le nom de la table.

Vous devez utiliser 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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!