2016-08-25 2 views
1

안녕하세요. 나는 그것을 얻지 못합니다.하나의 테이블을 업데이트하기 위해 두 개의 테이블 조건을 만드는 방법

나는 두 테이블

게시물이 있습니다

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

사용자 : 당신이 했잖아 및 을 fromid 값이 참조로

id|username 
1, user1 
2, user2 

. 그래서 나는 그것을 사용자 아이디로 채우기를 원하지만 나는 그것을 얻지 못한다.

1, 2, 1, user1, user2 

내가 fromid 시작이 시도했지만 작동하지 않았다 :

나중에 항목은 다음과 같아야합니다.

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

답변

2

둘 이상의 행에있는 열을 결합하는 표현식을 작성하려는 경우 조인을 사용할 수 있습니다. (이 표준 SQL의 일부가 아닌 있지만) MySQL이 지원

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; 

UPDATE 문에 조인.

관련 문제