Wpis z mikrobloga

#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 4 produkty to jak drugi ma taki sam dept jak trzeci to zwroci ten drugi, a tego trzeciego juz nie? bo taki daje wynik :/
  • 2
  • Odpowiedz