现有两个表,分别为:
list:存储文件状态。
file:存储文件信息。
使用 list.flowId = file.ownerId 进行关联。
两者关系 :1(list)--> N (file)
如果上传文件后,文件信息存入 file 表,并改变 list 表中文件存在标志位的值,置为“1”。现遇到情况:
如果发现 file 表中记录的文件和本地文件不符,需要删除表中记录,并且需要将 list 表中的文件存在标志位置为“0”。现寻求解决方案。
list:存储文件状态。
file:存储文件信息。
使用 list.flowId = file.ownerId 进行关联。
两者关系 :1(list)--> N (file)
如果上传文件后,文件信息存入 file 表,并改变 list 表中文件存在标志位的值,置为“1”。现遇到情况:
如果发现 file 表中记录的文件和本地文件不符,需要删除表中记录,并且需要将 list 表中的文件存在标志位置为“0”。现寻求解决方案。
select a.*,case when exists (select 1 from file where ownerid=a.flowid and hasfile=1) then 1 else 0 end as hasfile
from list as a
结果集是比list表多出一个hasfile列,这一列是查询中临时计算生成的,并未在数据库中存储
当然,具体的数据库,sql方言有些区别,不是拿来就能用的,大概的思路是这样的!