0
我试图将SQL命令转换为关系代数。最大的问题是有一个“NOT IN”SQL语句不在关系代数中。将SQL转换为关系代数 - 接下来要做什么?
我的查询做:
选择员工ID,姓和名员工,谁拥有训练这个quartal但没有对本次培训的所有先决条件training_id(从训练) - 所以他们并没有完全prerequisity从不训练。
如果结果以X结尾,则意味着它没有成功完成。
表:
employee(employee_id, first_name, last_name)
training(training_id, quartal, year, name)
enrollment(employee_id, training_id, quartal, year, result)
prerequisity(training_id, prerequisity_id)
我的SQL查询:
select e.employee_id, lastname, training_id from employee as e NATURAL JOIN enrollment NATURAL JOIN training NATURAL JOIN prerequisity WHERE quartal = 'first' and year = '2016' and training_id NOT IN (select e.training_id from enrollment as e NATURAL JOIN employee as ee where e.employee_id=ee.employee_id and result not like '%X' and result is not NULL)
这可能是正确的SQL所以现在我打算把它转换成关系代数:
PROJECT[employee_id,lastname, training_id](SELECT[quartal='first',year='2016']([email protected]@[email protected])) # here is the problem
如何在RA中模拟“NOT IN”命令?