2016-06-15 7 views
0

を重視だから私はこのように見ているテーブルを持っている:更新セル値が

TABLE1

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 

私は両親の色に基づいて、アンナ&ボブスの色を設定したいと思います。いつも青くならないかもしれません。

私はこれをよくしていませんが、他のコードに変更を加えようとしましたが、うまくいきませんでした。

UPDATE table1 AS p 
    INNER JOIN table1 AS Dad 
     ON p.dad_id = dad.id AND p.mom_id = mom.id 
     IF color = blue 
SET p.color = blue 
    .....? 

これは私が取得し、私は両親の色をチェックして、子孫に同じ色を返す方法を知らないとしてwhereIが...苦労どこまであります。

私は色の欄に親の色と同じ色を設定したいが、親の色が一致しない場合はNULLにしたい。

私は色を選ぶことができませんので、コードに「青」という値を使用することができます。私は実際に色の値に "一致"する必要はありません、私は青、赤または黄色の値を使用して、スクリプトを3回実行することができます。

答えて

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'; 
関連する問題