ビクター:
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
(持っていますか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