从同一表中的其他名称猜测性别

时间:2012-12-30 22:58:13

标签: mysql

以下是我的SQLFIDDLE,在其中你会看到有ABC的地方有性别的名字,但有不同的地方,但是DEF没有任何性别。我一直尝试做的是根据类似名称DEF的性别填充ABC的性别。请让我知道我该怎么做(相同的表更新)谢谢,

FIDDLE: http://sqlfiddle.com/#!2/e6b05/1

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题

UPDATE addr AS a
JOIN addr AS b
  ON  b.Name = a.Name
  AND b.place = 'ABC'
  AND a.place = 'DEF'
SET a.gender = b.gender
WHERE a.gender = 'N/A'

如果place无关紧要

UPDATE addr AS a
JOIN addr AS b
  ON  b.Name = a.Name
  AND b.gender <> 'N/A' 
SET a.gender = b.gender
WHERE a.gender = 'N/A'