빅터 :
table_a
user_id score
1 10
2 10
3 10
5 43
6 43
9 20
10 42
table_b
user_id flag
1 0
2 0
3 0
4 1
5 1
6 0
7 1
위의 경우, 내가 어떻게 채울 수 있습니다 table_b.flag
에 1
있는 경우 user_id
에서 table_a
A (이 score > 40
)?
아이디 :
당신은 멀티 테이블을 사용할 수 UPDATE
원하는 결과를 얻을 수 있습니다 :
UPDATE table_b b
JOIN table_a a ON a.user_id = b.user_id AND a.score > 40
SET b.flag = 1
JOIN
의 행만 것을 조건 수단에 table_b
대응하는 곳 user_id
의 것은 table_a
갖는다는이 score > 40
그들의 플래그 세트를 가질 것이다 1
. 당신이로도 설정 플래그를 원하는 경우 0
해당하는 경우 score <= 40
, 당신은의 값으로 조건을 사용할 수 있습니다 SET
(같은 이후 MySQL의 취급 논리 값 1
또는 0
숫자 문맥에서) :
UPDATE table_b b
JOIN table_a a ON a.user_id = b.user_id
SET b.flag = a.score > 40
샘플 데이터의 경우에 결과는 table_b
동일합니다 :
user_id flag
1 0
2 0
3 0
4 1
5 1
6 1
7 1