I’ve got students, courses, courseinstances(which includes ‘student_id’ and ‘course_id’ and whether they’ve passed), and a prerequisites table (‘course_id’ and ‘prereq_id’ both referencing courses).
I wish to get the available courseinstances, concidering the necessary prerequisites and the fact that a course can’t be taken twice.
I couldn’t find a way without recalculating some parts of the statement and ended up with:
SELECT id FROM courseinstances WHERE course_id NOT IN ((SELECT course_id FROM courseinstances WHERE passed = 1 AND student_id = ?) UNION (SELECT course_id FROM prerequisites WHERE prereq_id NOT IN (SELECT course_id FROM courseinstancess WHERE passed = 1 AND student_id = ?)))
Is there an optimized way to do this or is it just better to have an extra table containing the completed courses for each student.
✓ Extra quality
ExtraProxies brings the best proxy quality for you with our private and reliable proxies
✓ Extra anonymity
Top level of anonymity and 100% safe proxies – this is what you get with every proxy package
✓ Extra speed
1,ooo mb/s proxy servers speed – we are way better than others – just enjoy our proxies!
USA proxy location
We offer premium quality USA private proxies – the most essential proxies you can ever want from USA
99,9% servers uptime
No usage restrictions
Perfect for SEO
We are working 24/7 to bring the best proxy experience for you – we are glad to help and assist you!