Sql update连接两个值来设置另一个值

时间:2014-11-06 12:33:28

标签: mysql

我以前在下面提出了这个查询的帮助,但现在我注意到它无法正常工作。似乎它只是在检查father.Blood而不是母亲和父亲时更新

update DB1 p join
       DB1 father
       on father.id = p.father_id and father.Blood = 'A_test' join
       DB1 mother
       on mother.id = p.mother_id and mother.Blood = 'A_test'
    set p.Blood = 'B_result';

所以我希望孩子(p.Blood)用'B_result'更新,只要父亲和母亲有'A_test'值

我还尝试将父值设置为C_test,将母值设置为F_test,并希望将p.Blood设置为G_result,但是当我在运行此查询后检查更新的行时,我看到p.Blood已使用G_result更新但父亲和母亲的价值与我说的不符。

前:

update DB1 p join
           DB1 father
           on father.id = p.father_id and father.Blood = 'C_test' join
           DB1 mother
           on mother.id = p.mother_id and mother.Blood = 'F_test'
        set p.Blood = 'G_result';

我使用的代码是否有任何错误? (在phpMyAdmin中)或者我是否需要添加IF或仅IF或其他任何内容..?

我还需要查询跳过那些已经有p.Blood值'myvalue'或'myvalue2'

的条目

欣赏任何建议:P我仍然是一个菜鸟所以需要很好的解释:P

0 个答案:

没有答案