MySQL 如何知道哪一行不匹配?


 General table 1
 name      |   A  |    B |      C |      D
 ----------+------+------+--------+--------
 Tom       |    0 |    1 |      1 |      0
 Jerry     |    1 |    1 |      0 |      0
 Daffy     |    1 |    1 |      0 |      0
 Bunny     |    1 |    1 |      0 |      0
 Tweety    |    1 |    1 |      0 |      0
 Table A
 name
 Jerry
 Daffy
 Bunny
 Tweety

我有 4 张表 A、B、C 和 D。当表 A 中的名称与表 1 中的名称匹配时,我为每列设置 A = 1 等。

我在表 A 中有 8000 个名称,当我运行查询以更新表 1 时,似乎缺少一个名称,它返回 7999 行匹配。有没有办法在 2 个表之间找到缺少的名称?

 UPDATE  table1 t1 
 JOIN    A t2 ON t1.name = t2.name
 SET     t1.A = 1;

我试图用以下内容找到丢失的名称,

 SELECT t2.name
 FROM A t2
 LEFT JOIN table1 t1
 ON t1.name = t2.name
 WHERE t1.name IS NULL;

但它返回空集。

左连接会给你缺少的名字

Select t2.name
From A t2
Left join table1 t1
On t1.name = t2.name
Where t1.name is NULL

最新更新