我有2个表A and B
。我需要根据定义的规则,根据table A
在另一个表中的记录数,为所有用户标识更新userid
中的列。如果另一个表中的记录的count
是3,并且是该userID
所必需的,则将IsCorrect
标记为1,否则标记为0,如果count
是2,并且要求是5,则{ {1}}为0例如以下是我要实现的目标
表A
IsCorrect
表B
UserID | Required | IsCorrect
----------------------------------
1 | SO;GO;PE | 1
2 | SO;GO;PE;PR | 0
3 | SO;GO;PE | 1
我尝试在连接另一张表的表中使用Update,但是无法使用其中的一个。另外,由于其开销,也不想使用游标。我知道我必须为此规则创建一个存储过程,但是如何在不使用游标的情况下将userID传递给它呢?
这是我先前问题的更新。感谢您的帮助。
答案 0 :(得分:0)
使用meshView.setTranslateX(200);
meshView.setTranslateY(200);
meshView.setTranslateZ(200);
和聚合函数,然后进行条件更新的情况
sub-query
答案 1 :(得分:0)
这是PostgreSQL的解决方案:
update TableA
set IsCorrect =
case when
string_to_array(Required, ';') <@
(select array_agg(PPName)
from TableB
where TableA.UserID = TableB.UserID)
then 1
else 0
end;
您也可以看到它live on SQL Fiddle。