2016-08-25 1 views
1

Hallo Leute, ich verstehe es nicht.Wie mache ich zwei Tabelle Bedingung, um eine Tabelle zu aktualisieren

Ich habe zwei Tabellen

Beiträge:

id|fromid|toid|receiver|sender 
1, null, null, user1, user2 

Benutzer:

id|username 
1, user1 
2, user2 

Wie Sie sehen AbsenderID und EmpfängerID hat null Werte. Also wollte ich es mit User ID füllen, aber ich verstehe es nicht.

später sollte Eintrag wie folgt aussehen:

1, 2, 1, user1, user2 

ich dies mit AbsenderID zu beginnen versucht, aber hat nicht funktioniert.

SELECT @curUsername := user.username, @curUserid := user.id FROM user; 
UPDATE post SET post.fromid = @curUserid WHERE post.sender = @curUsername; 

Antwort

2

Wenn Sie einen Ausdruck schreiben wollen, die Spalten von mehr als einer Zeile kombiniert, können Sie einen Join verwenden.

UPDATE Posts 
JOIN User AS FromUser ON Posts.sender = FromUser.username 
JOIN User AS ToUser ON Posts.receiver = ToUser.username 
SET Posts.fromid = FromUser.id, 
    Posts.toid = ToUser.id; 

MySQL schließt sich in einer UPDATE Anweisung unterstützt (obwohl dies nicht Teil des Standard-SQL ist).

Verwandte Themen