我想在q-sql中执行以下sql:
update classes c set users=(select count(*) from learners u where u.classId=c.classId)
请注意,难点在于内部查询中的where子句涉及外部查询中的变量。
我能想到的最接近的想法是重命名内部查询中的类列(这是第一列)并尝试访问它们。
update users:(select count i from ( `LclassId xcol learners) where LclassId=classId) from classes
但这会导致错误'classId
,这似乎意味着来自外部查询的classId
在内心没有。
以下是一些示例数据:
learners:([]classId:(1;2;3;4); userId: (1; 2; 3; 4))
classes:([]classId:1, 2, 3, 4)
答案 0 :(得分:2)
q-sql update无法使用此语法。
尝试以下方法:
classes:classes lj select users:count i by classId from learners
编辑:(汇总时的其他更新语法)
对于此示例(所有classIds出现在学习者表中),您可以仅使用学习者表在技术上实现相同的结果。
classes:delete userId from update users:count i by classId from learners