我有 2 个表格,其中存储了课程以及多年来对课程名称的更改
餐桌课程
year, record
2009, 'Basic English 101'
2009, 'Maths 100'
2010, 'Introduction to English 102'
2010, 'Maths 101'
2010, 'History 100'
2011, 'English 103'
2012, 'Maths 102'
表更改
year, oldrecord', 'newrecord'
2010, 'Basic English 101', 'Introduction to English 102'
2010, 'Maths 100', 'Maths 101'
2011, 'Introduction to English 102', 'English 103'
2012, 'English 103', 'English 104'
2012, 'Maths 101' 'Maths 102'
我想要的是多年来显示课程名称,
通过这个查询,我设法获得了 2009 年和 2010 年英语 101 的下一个记录
SELECT year, record AS coursename FROM courses
WHERE record= 'Basic English 101'
UNION
SELECT Year, newrecord FROM changes
WHERE newrecord = (SELECT newrecord FROM changes WHERE oldrecord='Basic English 101')
结果
year, coursename
2009, 'Basic English 101'
2010, 'Introduction to English 102'
我的问题是如何根据新记录的价值获得其他年份的记录?
我可以做另一个子查询,但如果课程分成 2 个,我会得到子查询返回多个行错误。
谢谢。