0
私はSQLコマンドを関係代数に変換しようとしています。最も大きな問題は、リレーショナル代数ではない「NOT IN」SQL文があることです。そう、彼らは完全prerequisityませんでした - トレーニングにこのquartalを持っていますが、この訓練のためのすべての前提条件を持っていない従業員からSQLをリレーショナル代数に変換する - 次に何をするのですか?
を選択し、従業員ID、姓とtraining_id(訓練から):
私のクエリは、これをしませんでした決して訓練しない。
結果がXで終わる場合は、正常に完了していないことを意味します。
TABLES:
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"コマンドをシミュレートするには?