Supprimer de deux tables en une seule requête
P粉401901266
P粉401901266 2023-08-27 13:45:48
0
2
484
<p>J'ai deux tables dans MySQL</p> <pre class="brush:php;toolbar:false;">#tableau des messages : ID du message titre du message . . Tableau #messagesutilisateurs identifiant du message utilisateur ID du message ID de l'utilisateur . .≪/pré> <p>Maintenant, si je souhaite supprimer du tableau des messages, je le peux. Mais lorsque je supprime le message par messageid, l'enregistrement existe toujours sur le message utilisateur et je dois le supprimer immédiatement des deux tables. </p> <p>J'ai utilisé la requête suivante : </p> <pre class="brush:php;toolbar:false;">DELETE FROM messages LEFT JOIN usersmessages USING(messageid) WHERE messageid='1' ;</pre> <p>Puis je teste</p> <pre class="brush:php;toolbar:false;">DELETE FROM messages, messages utilisateurs OÙ messages.messageid = utilisateursmessages.messageid et messageid='1' ;</pre> <p>Mais ces deux requêtes n’ont pas accompli cette tâche. </p>
P粉401901266
P粉401901266

répondre à tous(2)
P粉164942791
DELETE a.*, b.* 
FROM messages a 
LEFT JOIN usersmessages b 
ON b.messageid = a.messageid 
WHERE a.messageid = 1

Traduction : Supprimez de la table messages où messageid = 1, si la table uersmessages a messageid = messageid de la table messages puis supprimez la ligne user messages table.

P粉595605759

Je ne peux pas les séparer par un point-virgule ?

Delete from messages where messageid = '1';
Delete from usersmessages where messageid = '1'

ou

Utilisez simplement INNER JOIN comme indiqué ci-dessous

DELETE messages , usersmessages  FROM messages  INNER JOIN usersmessages  
WHERE messages.messageid= usersmessages.messageid and messages.messageid = '1'
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal