基于父值的后向更新逻辑

Logic for backward updation based on parent value

我有以下 tables 数据如下

Table_Cell

Cell_id  Column_id   row_id SwitchCell
------------------------------
1122    11      22      1
1133    11      33      0
1144    11      44      1
5522    55      22      1
5533    55      33      1
5544    55      44      1

Table_column

column_id    SwitchCol
11          ?
55          ?

Table_row

row_id  Switchrow
22      ?
33      ?
44      ?

我需要更新 Table_column 中的 SwitchCol 和 Table_row 中的 Switchrow

逻辑是

如果对于Table_column中的column_id,Table_row中与row_id的所有组合,出现在table中的Table_Cell为1 ,然后使 column_id 的 SwitchCol =1 类似地,对于Table_row中的id,Table_row与Table_column中的id在tableTable_Cell中的所有组合都是1,然后为此设置Switchrow=1 row_id

例如:对于 column_id =55 ,它与 Table_row table 在 table Table_Cell (5522,5533,5544) 中的组合有 SwitchCell = 1,所以 55 的 SwitchCol 将为 1, 但是 11 的 SwitchCol 将为 0(因为(1122,1133,1144)有 1,0,1,在一种情况下它是关闭的。

请帮我逻辑。寻找 sql 查询

我想你只需要 min() 和一个相关的子查询:

update table_column co
set switchcol = (
    select min(ce.switchcell)
    from table_cell ce
    where ce.column_id = co.column_id
)