Mysql 根据另一个表中的值更新表

Mysql 根据另一个表中的值更新表,mysql,join,sql-update,Mysql,Join,Sql Update,我需要更新一个表中的字段,如果该id存在于MySQL中的另一个表中 表A: ID Title 01 ABCDE 02 EFGHI 03 JKLMN 表B: ID Category 01 CAT1 01 CAT2 02 CAT2 03 CAT1 03 CAT3 在这些表A.ID=B.ID中,如果表B Category=CAT1,我需要从表A更新标题,因此,我必须更新ID 01和ID 03的标题,而不是ID 02。您需要使用子查询。你可以这样做: UPDATE TableA a SET Titl

我需要更新一个表中的字段,如果该id存在于MySQL中的另一个表中

表A:

ID Title
01 ABCDE
02 EFGHI
03 JKLMN
表B:

ID Category
01 CAT1
01 CAT2
02 CAT2
03 CAT1
03 CAT3

在这些表A.ID=B.ID中,如果表B Category=CAT1,我需要从表A更新标题,因此,我必须更新ID 01和ID 03的标题,而不是ID 02。

您需要使用子查询。你可以这样做:

UPDATE TableA a
SET Title = 'whatever'
WHERE EXISTS (SELECT 1 FROM TableB b WHERE a.ID = b.ID AND b.Category = 'CAT1');
UPDATE A
  SET Title = 'OPQRS'
  WHERE ID IN (SELECT ID FROM B WHERE Category = 'CAT1')