następujące dwa zdania:SQL lewo samosprzężenie z GDZIE zależności klauzula między dwiema kopiami tabeli
hello there
bye!
są reprezentowane w sentence_words stołowych przez:
WORD_ID SENTENCE_ID WORD WORD_NUMBER
10 1 hello 1
11 1 there 2
12 2 bye! 1
chcę zrobić zapytanie zewnętrzne, które daje mi wyniki:
WORD1 WORD2
hello there
bye! NULL
Pamiętaj, że mogę zacząć od środka o f zdanie, więc nie można zakładać, że słowo2 ma word_number = 2. Jeśli wybiorę my_start_number = 2, to zapytanie może dać mi:
WORD1 WORD2
there NULL
Próbowałem:
(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);
To tylko daje mi wynik jeśli w zdaniu są dwa słowa. Nie jestem pewien, co zrobić, to nie jest skomplikowane.
Co to są za pomocą mssql, mysql, oracel? – Arion
Czy próbujesz odtworzyć zdanie lub jesteś zainteresowany powrotem par słów? –