Los siguientes dos frases:SQL dejó autocombinación con DONDE dependencias cláusula entre las dos copias de la tabla
hello there
bye!
están representados en el sentence_words mesa por:
WORD_ID SENTENCE_ID WORD WORD_NUMBER
10 1 hello 1
11 1 there 2
12 2 bye! 1
que quiero hacer una consulta de combinación externa que me da los resultados:
WORD1 WORD2
hello there
bye! NULL
Tenga en cuenta que es posible que desee comenzar en el medio o f la sentencia por lo que no se puede asumir que palabra2 tiene word_number = 2. Si decido my_start_number = 2, entonces la consulta debe dame:
WORD1 WORD2
there NULL
Traté:
(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);
Eso sólo me da resultado si hay dos palabras en la oración No estoy seguro de qué hacer, eso no es muy complicado.
¿Qué están usando mssql, mysql, oracel? – Arion
¿Estás tratando de volver a crear la oración o solo te interesan los pares de palabras de retorno? –