コースとコース名の変更を何年にもわたって保存する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つに分割されている場合、サブクエリは複数の行エラーを返します。
ありがとう。