我正在使用SQL,我有4个表。
tbl_document(包含document_id作为主键,assignment_id作为外键),
现在我需要编写一个存储过程来验证项目并返回验证结果,其中项目id将作为参数传递。
我有一个临时表,我需要插入验证错误,如"任务 - 任务1不包含任何作业"," Assignemnt - Assignment2不包含任何documnets"等
有没有办法在不使用游标的情况下实现这个逻辑
答案 0 :(得分:2)
您不需要游标进行此类型验证。以下是三个执行此操作的查询:
没有任务的项目:
select p.*
from tbl_projects p left outer join
tbl_tasks t
on p.project_id = t.project_id
where t.project_id is null;
任务至少有一项任务:
select p.*
from tbl_tasks t left outer join
tbl_assignments a
on a.task_id = t.task_id
where a.task_id is null;
所有作业至少有一个文件:
select p.*
from tbl_assignments a left outer join
tbl_documents d
on a.assignment_id = d.assignment_id
where d.assignment_id is null;