Heim  >  Fragen und Antworten  >  Hauptteil

Aus zwei Tabellen in einer Abfrage löschen

<p>Ich habe zwei Tabellen in MySQL</p> <pre class="brush:php;toolbar:false;">#messages Tabelle: Nachrichten ID Nachrichtentitel . . #usersmessages-Tabelle Benutzernachrichten-ID Nachrichten ID Benutzer-ID . .</pre> <p>Wenn ich jetzt aus der Nachrichtentabelle löschen möchte, kann ich das tun. Aber wenn ich die Nachricht anhand der Nachrichten-ID lösche, ist der Datensatz immer noch in der Benutzernachricht vorhanden und ich muss ihn sofort aus beiden Tabellen löschen. </p> <p>Ich habe die folgende Abfrage verwendet: </p> <pre class="brush:php;toolbar:false;">LÖSCHEN AUS Nachrichten LINKS BEITRETEN von BenutzernNachrichten USING(messageid) WHERE messageid='1' ;</pre> <p>Dann teste ich</p> <pre class="brush:php;toolbar:false;">LÖSCHEN AUS Nachrichten, Benutzernachrichten WHERE messages.messageid =usermessages.messageid und messageid='1' ;</pre> <p>Aber diese beiden Abfragen haben diese Aufgabe nicht erfüllt. </p>
P粉401901266P粉401901266418 Tage vor456

Antworte allen(2)Ich werde antworten

  • 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

    翻译:从表messages中删除,其中messageid = 1,如果表uersmessages有messageid =表messages的messageid,则删除该行用户消息表。

    Antwort
    0
  • P粉595605759

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

    不能用分号分隔它们吗?

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

    只需使用INNER JOIN,如下所示

    DELETE messages , usersmessages  FROM messages  INNER JOIN usersmessages  
    WHERE messages.messageid= usersmessages.messageid and messages.messageid = '1'

    Antwort
    0
  • StornierenAntwort