sql_delete impossible avec des jointures
Quand on fait un DELETE avec des jointures, il faut préciser sur quelle table, mais il n'y a pas de paramètre pour ça dans sql_delete().
Exemple :
sql_delete(
'spip_mots_liens AS L INNER JOIN spip_mots AS M ON M.id_mot=L.id_mot',
[
'L.objet = ' . sql_quote('auteur'),
'L.id_objet = ' . intval($id_auteur),
'M.id_groupe = 40'
]
);
Produit cette requête qui ne fonctionne pas :
DELETE
FROM
spip_mots_liens AS L
INNER JOIN spip_mots AS M
ON M.id_mot = L.id_mot
WHERE
L.objet = 'auteur'
AND L.id_objet = 10
AND M.id_groupe = 40
Dans cet exemple, il faudrait pouvoir ajouter la table ciblée à la suite du DELETE :
DELETE L
FROM
spip_mots_liens AS L
INNER JOIN spip_mots AS M
ON M.id_mot = L.id_mot
WHERE
L.objet = 'auteur'
AND L.id_objet = 10
AND M.id_groupe = 40
Bon je sais pas comment, avec un 5ème param à sql_delete ça serait pas dans un ordre très logique.
Modification effectuée par JamesRezo