根据其他2个单元格值的结果更新单元格值

时间:2016-06-15 13:40:12

标签: php mysql join

所以我有一张看起来像这样的表:

表1

var query = 
    new[] {
    new { A = 3, B = 3 },
    new { A = 2, B = 2 },
    new { A = 2, B = 2 },
    new { A = 1, B = 1 }
}
.OrderBy(x => x.A)
.ThenBy(x => x.B)
.ThrowIfConsecutiveItemsAreEqual()
.ToList();

我想设置anna&基于父母颜色的颜色。它可能不会是蓝色的..

我不是很擅长这个,但是我试图改变我用于别的东西的另一个代码但是没有用。

id   name    dad    mom    color
1    bob     12      4      NULL
4   embla    NULL   NULL    blue
12  clyde    NULL   NULL    blue
2   anna     12     4      NULL

这是我得到的距离和我在哪里挣扎......因为我不知道如何检查父母的颜色,然后将相同的颜色返回给后代。

所以我想在颜色列中设置与父颜色相同的颜色,如果父颜色不匹配,我希望它为NULL。

我没有多种颜色可供选择,所以我可以使用价值" blue"在代码中。我不需要实际地匹配"颜色值,我可以使用蓝色,红色或黄色值并运行脚本3次。

1 个答案:

答案 0 :(得分:0)

试试这个:

UPDATE table1 p
JOIN table1 dad ON dad.id = p.dad_id AND dad.color = 'blue'
JOIN table1 mom ON mom.id = p.mom_id AND mom.color = 'blue'
SET p.color = 'blue';