#xml #xquery #kiciochpyta

ktos moze mi powiedziec co dokladnie robi ta linijka?

where $prod << $prods[@dept = $prod/@dept][last()]

caly przyklad:

let $prods := doc("catalog.xml")//product

for $prod in $prods

where $prod << $prods[@dept = $prod/@dept][last()]

return $prod

jak rozumiem dla kazdego prod sprawdza czy istnieje prods z tym samym dept? jezeli tak to zwraca ten prod, ale czemu tam jest las? to znaczy ze nigdy nie sprawdza od poczatku ? tylko jak sa