CQL 使用连接查询更新集合<bigint>

CQL UPDATE a set<bigint> with join query

我必须根据某些条件使用 CQL 从 table 中删除一些数据,这将从另一个 table 获取数据。但是我无法形成查询。

这是我需要删除数据的 table 详细信息:

Table Name : xyz_group
Columns : dept_id [int] , sub_id [set<bigint>]
PRIMARY KEY (Partition key) : dept_id

多个dept_id可以有相同的sub_id。数据如下所示:

dept_id     |     sub_id
-------------------------------
1098        |  345678298, 24579123, 8790455308
2059        |  398534698, 24579123, 8447659928
3467        |  311209878, 24579123, 8790455308, 987654321,

我只需要从所有行中删除 ---> 24579123、8790455308

这是我的 SELECT 查询,它将从另一个 table abc_list 将从 table xyz_group

中删除
select sub_id from abc_list where sub_name='XYZ';

上述查询的输出将给我一个 sub_id 的列表,我想从 table xyz_group。所以基本上我想通过从集合中删除数据来更新集合。如下所示:

UPDATE xyz_group SET sub_id = sub_id - [ query result from above select query ] WHERE dept_id in (1098, 2059, 3467, ...);

我试图从集合中删除一个元素,但出现以下错误:

UPDATE xyz_group SET sub_id = sub_id - [ 24579123 ] WHERE dept_id in (1098, 2059, 3467, ...);

Error : Column sub_id type set<bigint> is not compatible with type list<int>

tables 有大约 >50k 的记录。任何人都可以帮助形成一个正确的查询来更新。

下面的查询现在对我有用:

UPDATE xyz_group SET sub_id = sub_id - { 24579123 } WHERE dept_id in (1098, 2059, 3467, ...);

但我正在执行一个两步过程来更新 table。首先收集所需的 sub_id 然后使用单独的 UPDATE 查询更新 table.Not 能够在单个查询。