次の 2 つの文:
hello there
bye!
文_単語テーブルでは、次のように表されます。
WORD_ID SENTENCE_ID WORD WORD_NUMBER
10 1 hello 1
11 1 there 2
12 2 bye! 1
結果が得られる外部結合クエリを実行したい:
WORD1 WORD2
hello there
bye! NULL
文の途中から開始したい場合があるため、word2 が word_number = 2 であると想定できないことに注意してください。 my_start_number = 2 を選択すると、クエリは次のようになります。
WORD1 WORD2
there NULL
私は試した:
(my_start_number = 1)
select s1.word word1, s2.word word2
from sentence_words s1
left join sentence_words s2
on s1.sentence_id = s2.sentence_id
where s1.word_number = my_start_number
and (s2.word_number = s1.word_number +1 or s2.word_number is null);
文に2つの単語がある場合にのみ結果が得られます。どうすればいいのかわからないのですが、それほど複雑ではありません。