3

不确定它是否是正确的 SQL,并且希望将 SQL 向后转换回元组关系演算以检查正确性。假设我们提出这个查询来显示所有完成介绍的参与者都完成了所有需求类的类。所以我们有两个表,进度和要求。其中progress: mId(string), cId(string) and requirements: : cId(string), rId(string) 所有的注册都在进行中,所有的需求都在指定的需求表中。

mId:memeberId
cId:cId
rId:requirmentClassId



Select cId 
From requirement r 
Where r.rId in (Select distinct(cId) 
                From progress 
                Where mId in (Select mId 
                              From  progress 
                              Where cId='intro'
                               )
                );

我们首先从他们完成介绍会话的进度表中选择所有成员。Select mId From progress Where cId='intro'

然后我们拥有完成介绍的所有成员,因此我们可以选择成员完成的所有其他不同的课程。

Select distinct(cId) 
                From progress 
                Where mId in (Select mId 
                              From  progress 
                              Where cId='intro'
                               )
                )

现在我们已经完成了所有完成介绍的成员完成的所有课程,现在我们可以找出应该提供给完成介绍的所有成员的所有下一个可能的课程?

好的,在我写完问题后,我认为这个查询不正确,因为现在我们已经完成了所有参加介绍的成员的所有课程,但不一定所有课程都由单个学生完成,对吗?请检查我的工作。非常感谢任何帮助。

4

0 回答 0