子テーブルの列が1つのParentIdに対してすべて同じ値を持つ場合、親テーブルの列を更新しようとしています。子テーブルの複数の値に基づいて1つの親テーブルを更新する方法
T1 - 親
| ParentId | StatusId |
|---------------------|------------------|
| 1 | 1 |
|---------------------|------------------|
| 2 | 1 |
|---------------------|------------------|
T2 - 子供T2の状態列があるならば、それ以外は0にT1でのステータスを設定ParentIdは1のためのすべての0年代を持っている場合
| ChildId | ParentId | StatusId |
|---------------------|------------------|------------------|
| 1 | 1 | 0 |
|---------------------|------------------|------------------|
| 2 | 1 | 0 |
|---------------------|------------------|------------------|
| 3 | 1 | 0 |
|---------------------|------------------|------------------|
| 4 | 2 | 1 |
|---------------------|------------------|------------------|
| 5 | 2 | 0 |
|---------------------|------------------|------------------|
1のステータスをT2のParentIdに設定し、T1のステータスを1に設定するか、何もしません。 UPDATE文の後
望ましい結果:
T1 - 親
| ParentId | StatusId |
|---------------------|------------------|
| 1 | 0 |
|---------------------|------------------|
| 2 | 1 |
|---------------------|------------------|
T2 - 私が知っている子供
| ChildId | ParentId | StatusId |
|---------------------|------------------|------------------|
| 1 | 1 | 0 |
|---------------------|------------------|------------------|
| 2 | 1 | 0 |
|---------------------|------------------|------------------|
| 3 | 1 | 0 |
|---------------------|------------------|------------------|
| 4 | 2 | 1 |
|---------------------|------------------|------------------|
| 5 | 2 | 0 |
|---------------------|------------------|------------------|
は、おそらくアップデートを使用して、このような何かを行うことができますし、多分ループですが、私はそれをどのように構築するかについてはあまりよく分かりません。どんな助けもありがとうございます。
を使用して行うことができますか? – Eric
UPDATE PT SET PT.StatusId = CASE PT.StatusId = 1 THEN 1 ParentTable PT FROM CT.StatusId IN(0,1)THEN 1 END がPT.ParentID = CT.ParentId ON ChildTable CT をJOIN – CursiosAsEver69
一般的なルールとしてwhileループは避けてください。 –