Я пытаюсь найти названия книг с одинаковым кодом издателя и ценой в XQuery.
Я уже пытался создать 2 книжные переменные, которые будут сравниваться друг с другом, а затем распечатывать итоговые заголовки, но это не распечатывает правильно, поэтому что-то должно быть не так с логикой. Я новичок в XQuery и пытаюсь преобразовать SQL-запрос в XQuery
.
SQL-запрос:
SELECT Bk1.title as T1
, Bk2.title as T2
from book Bk1
join book Bk2
on Bk1.publishercode = Bk2.publishercode
and Bk1.bookCode < Bk2.bookCode
and Bk1.Price = Bk2.Price
XQuery:
<results>
{
let $book1 := doc("C:\basex\henry\Book.xml")/dataroot/Book
let $book2 := doc("C:\basex\henry\Book.xml")/dataroot/Book
for $b in ($book1,$book2)
where $book1/PublisherCode = $book2/PublisherCode and $book1/Price = $book2/Price
return
<pair>
{data($b/Title)}
</pair>
}
</results>
Это должно распечатать что-то вроде
MatchingBook1 - MatchingBook2
MatchingBook3 - MatchingBook4
MatchingBook5 - MatchingBook6
Каждая строка должна быть результатом пары книг, которые соответствуют как по цене, так и по кодам издателя.
Мой код просто печатает каждый заголовок Книги в XML-файле, поэтому он не сравнивает цену кода издателя.