ZSBD-2st-1.2-w10.tresc-1.4-Slajd19
Podzapytania
W zapytaniach XQuery można zagnieżdżać wyrażenia FLWOR.
Najczęściej zagnieżdżenia występują:
- w klauzuli RETURN
- jako argumenty funkcji
- w klauzuli WHERE pod postacią np. wyrażeń ilościowych
Zagnieżdżenia mogą wykorzystywać wcześniej przypisane zmienne. Zagnieżdżenia w klauzuli RETURN, umieszczone pomiędzy ciągami znaków tworzącymi szablon wyniku, ograniczamy nawiasami klamrowymi. W podobny sposób postępujemy z wymagającymi ewaluacji odwołaniami do wartości zmiennych.
Przykładowe zapytania z zagnieżdżonym wyrażeniem FLWOR umieszczono na slajdzie.
W pierwszym przypadku zapytanie zewnętrzne odwołuje się do dokumentu zespoly.xml i wydobywa z niego elementy id_zesp, które przypisuje do zmiennej $z, każdorazowo tworząc nową krotkę. Dla każdej krotki klauzula RETURN tworzy element zespol, w którego wnętrzu zostanie umieszczony element nazwa (ewaluacja zmiennej wymaga użycia nawiasów klamrowych) oraz wynik zagnieżdżonego wyrażenia FLWOR – las elementów nazwisko. W podzapytaniu wykorzystano zewnętrzną zmienną $z do ograniczenia krotek (wydobycia pracowników należących do danego zespołu) co oczywiście skutkuje tym że podzapytanie utworzy odpowiednio wyselekcjonowane elementy nazwisko.
Podzapytanie bywa też najczęstszym sposobem na generowanie wyników w postaci dokumentów poprawnych w sensie well-formed. Zapytanie drugie jest tego przykładem.