基于父值的后向更新逻辑
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
)
我有以下 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
)