私は次のように構成されたテーブルを持っています:
fake_id start end misc_data
------------------------------------------------------
1 101 105 ab
1 101 105 cd
1 101 105 ef
2 117 123 gh
2 117 123 ij
2 117 123 kl
2 117 123 mn
3 51 53 op
3 51 53 qr
fake_idフィールドは実際には主キーではありませんが、startとendで指定された範囲内の個別の奇数の数に等しい回数繰り返されることに注意してください。各レコードの実際のIDは、その範囲の奇数の1つです。次のように、fake_id、misc_data、およびこれらの奇数を含む別の列を返すクエリを記述して、実際のIDを生成する必要があります。
fake_id real_id misc_data
------------------------------------------
1 101 ab
1 103 cd
1 105 ef
2 117 gh
2 119 ij
2 121 kl
2 123 mn
3 51 op
3 53 qr
私の知る限り、シーケンスにギャップがないという保証はありません(たとえば、範囲21〜31のレコードがない可能性があります)。特定のfake_idを持つ各レコードについて、開始と終了の間の次の奇数を返す必要があることをクエリ(またはプロシージャ、ただしクエリが望ましい)に伝えるにはどうすればよいですか?
また、misc_dataの値を特定のreal_idに属するようにする方法はありますか?2番目の表を例として使用すると、「ab」が103ではなくreal_id 101に属していることをクエリにどのように伝えることができますか?
前もって感謝します。