due frasi seguenti:SQL lasciato self-join con WHERE dipendenze clausola tra le due copie della tabella
hello there
bye!
sono rappresentati nel sentence_words tavolo da:
WORD_ID SENTENCE_ID WORD WORD_NUMBER
10 1 hello 1
11 1 there 2
12 2 bye! 1
che voglio fare una query outer join che mi dà i risultati:
WORD1 WORD2
hello there
bye! NULL
Nota che potrei voler iniziare nel mezzo o f la frase in modo da non può supporre che parola2 ha word_number = 2. Se scelgo my_start_number = 2 allora la query deve darmi:
WORD1 WORD2
there NULL
ho provato:
(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);
Che solo mi dà un risultato se ci sono due parole nella frase. Non sono sicuro di cosa fare, non è molto complicato.
Cosa stanno usando mssql, mysql, oracel? – Arion
Stai cercando di ricreare la frase o sei interessato solo a restituire coppie di parole? –