sql_delete impossible avec des jointures #4840

Open
opened 3 months ago by tcharlss · 0 comments
Owner

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.

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.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.