0

以下の XML DTD とそれに関連するリレーショナル データベース スキーマが与えられます。

<!DOCTYPE CATALOG [ 
<!ELEMENT CATALOG (TOOL | TOY)+> 
<!ELEMENT TOOL (NAME,SPECIFICATIONS+,OPTIONS?)> 
<!ELEMENT NAME (#PCDATA)> 
<!ELEMENTSPECIFICATIONS (#PCDATA)> 
<!ELEMENT OPTIONS (#PCDATA)> 
<!ELEMENT TOY (NAME,PRICE?)>
<!ELEMENT PRICE (#PCDATA)>]>

Tools(toolid: integer, name: string, options: string) 
Specifications(toolid: integer, specno: integer, spec: string) 
Toys(toyid: integer, name: string, price: string)

次の SQL クエリを同等の XQuery 式に変換するにはどうすればよいですか?

SELECT name FROM Tools
UNION
SELECT name FROM Toys

前もって感謝します。

4

1 に答える 1

2

XQuery の結果セットは、ネストするときに平坦化されるシーケンスです (これは SQL に相当しますUNION)。

(/Catalog/Tool/name, /Catalog/Toy/name)

<name/>ただし、タグは<Tool/>s とs 内でのみ発生する可能性があるため、両方のパスをクエリする必要はありません。<Toy/>そのため、単純に式 を使用できます//name

于 2013-06-28T22:14:01.503 に答える