recherche

Maison  >  Questions et réponses  >  le corps du texte

Supprimer de deux tables en une seule requête

<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粉401901266P粉401901266453 Il y a quelques jours487

répondre à tous(2)je répondrai

  • P粉164942791

    P粉1649427912023-08-28 10:18:24

    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.

    répondre
    0
  • P粉595605759

    P粉5956057592023-08-28 09:11:20

    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'

    répondre
    0
  • Annulerrépondre