Sau đây hai câu:SQL trái tự tham gia với ĐÂU phụ thuộc khoản giữa hai bản sao của bảng
hello there
bye!
được trình bày trong các sentence_words bảng bằng cách:
WORD_ID SENTENCE_ID WORD WORD_NUMBER
10 1 hello 1
11 1 there 2
12 2 bye! 1
tôi muốn làm truy vấn tham gia bên ngoài mang lại cho tôi kết quả:
WORD1 WORD2
hello there
bye! NULL
Lưu ý rằng tôi có thể muốn bắt đầu ở giữa o f câu vì vậy tôi không thể giả định word2 có word_number = 2. Nếu tôi chọn my_start_number = 2 thì truy vấn nên cung cấp cho tôi:
WORD1 WORD2
there NULL
tôi đã cố gắng:
(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);
đó chỉ mang lại cho tôi một kết quả nếu có hai từ trong câu. Tôi không chắc phải làm gì không phức tạp.
Điều gì đang sử dụng mssql, mysql, oracel? – Arion
Bạn đang cố gắng tạo lại câu hay bạn chỉ quan tâm đến các cặp từ trở lại? –