У меня есть строки родителей (P) и детей (C) в одной таблице. Они связаны по ID и RefID соединению. Это выглядит так (пример данных):
| Value | ID | RefID | Type |
|---------------------|------------------|---------------------|------------------|
| 0 | 1 | 0 | P |
| 5 | 2 | 0 | P |
| 0 | 3 | 1 | C |
| 3 | 4 | 1 | C |
| 0 | 5 | 2 | C |
Мне нужно обновить столбец Value
до 1, если type = P (Parent) и Value = 0. Также следует обновить все Value
до 1 для детей этого родителя.
Результат должен быть:
| Value | ID | RefID | Type |
|---------------------|------------------|---------------------|------------------|
| 1 | 1 | 0 | P |
| 5 | 2 | 0 | P |
| 1 | 3 | 1 | C |
| 1 | 4 | 1 | C |
| 0 | 5 | 2 | C |
Есть ли способ сделать это в одном запросе SQL? Каков наилучший подход?