[英]xquery return value off by one
<?xml version="1.0" encoding="UTF-8"?>
<library>
<items>
<book asin="0201100886"
created="128135928"
lastLookupTime="128135928">
<uuid>BA57A934-6CDC-11D9-830B-000393D3DE16</uuid>
<title>Compilers</title>
<authors>
<author>Alfred V. Aho</author>
<author>Ravi Sethi</author>
<author>Jeffrey D. Ullman</author>
</authors>
<publisher>Addison Wesley</publisher>
<published>1986-01-01</published>
<price>102.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0122513363" created="128135600" lastLookupTime="128136224">
<uuid>F7468E09-6CDB-11D9-830B-000393D3DE16</uuid>
<title>Database Driven Web Sites</title>
<authors><author>Jesse Feiler</author></authors>
<publisher>Morgan Kaufmann</publisher>
<published>1998-04-15</published>
<edition>Paperback</edition>
<price>50.95</price>
<purchaseDate>2005-01-22</purchaseDate>
<currentValue>35.00</currentValue>
<netRating>1.5</netRating>
<genres>
<genre>Computer Bks - Internet</genre>
<genre>Computer Books: Web Programming</genre>
<genre>Computer Networks</genre>
<genre>Computers</genre>
<genre>Database Management - General</genre>
<genre>Database management</genre>
<genre>Design</genre>
<genre>Distributed Databases</genre>
<genre>Information Technology</genre>
<genre>Internet - Web Site Design</genre>
<genre>Networking - General</genre>
<genre>Web sites</genre>
<genre>Computers / Computer Science</genre>
</genres>
<upc>608628133638</upc>
</book>
<book asin="0201441241"
created="128136896"
lastLookupTime="128136896">
<uuid>FBC45DF4-6CDE-11D9-830B-000393D3DE16</uuid>
<title>Introduction to Automata Theory, Languages, and Computation (2nd Edition)</title>
<authors>
<author>John E. Hopcroft</author>
<author>Rajeev Motwani</author>
<author>Jeffrey D. Ullman</author>
</authors>
<publisher>Addison Wesley</publisher>
<published>2000-11-14</published>
<price>108.20</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0471250600"
created="128136896"
lastLookupTime="128136896">
<uuid>FBC7CA56-6CDE-11D9-830B-000393D3DE16</uuid>
<title>Operating System Concepts</title>
<authors>
<author>Abraham Silberschatz</author>
<author>Greg Gagne</author>
<author>Peter Baer Galvin</author>
</authors>
<publisher>Wiley</publisher>
<published>2002-03-08</published>
<price>107.95</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0321193628"
created="128136896"
lastLookupTime="128136896">
<uuid>FBCB3DCF-6CDE-11D9-830B-000393D3DE16</uuid>
<title>Concepts of Programming Languages, Sixth Edition</title>
<authors><author>Robert W. Sebesta</author></authors>
<publisher>Addison Wesley</publisher>
<published>2003-07-24</published>
<price>112.40</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0138613370" created="128136944" lastLookupTime="128136944">
<uuid>19E5E602-6CDF-11D9-830B-000393D3DE16</uuid>
<title>First Course in Database Systems, A</title>
<authors>
<author>Jeffrey D. Ullman</author>
<author>Jennifer Widom</author>
</authors>
<publisher>Prentice Hall</publisher>
<published>1997-04-02</published>
<edition>Hardcover</edition>
<price>67.00</price>
<purchaseDate>2005-01-22</purchaseDate>
<netRating>3.2</netRating>
<genres>
<genre>Computer Books: Database</genre>
<genre>Computers</genre>
<genre>Database Engineering</genre>
<genre>Database Management - General</genre>
<genre>Database management</genre>
</genres>
<recommendations>
<book asin="0130402648"
created="128136952"
lastLookupTime="128136952">
<uuid>1C60074A-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Database System Implementation</title>
<authors>
<author>Hector Garcia-Molina</author>
<author>Jeffrey D. Ullman</author>
<author>Jennifer D. Widom</author>
</authors>
<publisher>Prentice Hall</publisher>
<published>1999-06-11</published>
<price>89.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0130319953"
created="128136952"
lastLookupTime="128136952">
<uuid>1C635DB0-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Database Systems: The Complete Book</title>
<authors>
<author>Hector Garcia-Molina</author>
<author>Jeffrey D. Ullman</author>
<author>Jennifer D. Widom</author>
</authors>
<publisher>Prentice Hall</publisher>
<published>2001-10-02</published>
<price>98.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0201976994"
created="128136952"
lastLookupTime="128136952">
<uuid>1C66B7B4-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Computer Networking: A Top-Down Approach Featuring the Internet</title>
<authors>
<author>James F. Kurose</author>
<author>Keith W. Ross</author>
<author>James Kurose</author>
<author>Keith Ross</author>
</authors>
<publisher>Addison Wesley</publisher>
<published>2002-07-17</published>
<price>100.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0131433512"
created="128136952"
lastLookupTime="128136952">
<uuid>1C6AC88C-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Computer Networks and Internets, Fourth Edition</title>
<authors>
<author>Douglas E Comer</author>
<author>Ralph E. Droms</author>
</authors>
<publisher>Prentice Hall</publisher>
<published>2003-07-28</published>
<price>100.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0262062178"
created="128136952"
lastLookupTime="128136952">
<uuid>1C6E712C-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Essentials of Programming Languages - 2nd Edition</title>
<authors>
<author>Daniel P. Friedman</author>
<author>Mitchell Wand</author>
<author>Christopher T. Haynes</author>
</authors>
<publisher>The MIT Press</publisher>
<published>2001-01-29</published>
<price>62.00</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0471250600"
created="128136952"
lastLookupTime="128136952">
<uuid>1C71B23E-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Operating System Concepts</title>
<authors>
<author>Abraham Silberschatz</author>
<author>Greg Gagne</author>
<author>Peter Baer Galvin</author>
</authors>
<publisher>Wiley</publisher>
<published>2002-03-08</published>
<price>107.95</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0137903952"
created="128136952"
lastLookupTime="128136952">
<uuid>1C764AD4-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Artificial Intelligence: A Modern Approach (2nd Edition)</title>
<authors>
<author>Stuart J. Russell</author>
<author>Peter Norvig</author>
</authors>
<publisher>Prentice Hall</publisher>
<published>2002-12-20</published>
<price>93.33</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="155860832X"
created="128136952"
lastLookupTime="128136952">
<uuid>1C898640-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Computer Networks: A Systems Approach, 3rd Edition</title>
<authors>
<author>Larry L. Peterson</author>
<author>Bruce S. Davie</author>
</authors>
<publisher>Morgan Kaufmann</publisher>
<published>2003-05-22</published>
<price>89.95</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0130669474"
created="128136952"
lastLookupTime="128136952">
<uuid>1C8DD37A-6CDF-11D9-830B-000393D3DE16</uuid>
<title>SQL Fundamentals (2nd Edition)</title>
<authors><author>John J. Patrick</author></authors>
<publisher>Prentice Hall PTR</publisher>
<published>2002-05-07</published>
<price>54.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0321122267"
created="128136952"
lastLookupTime="128136952">
<uuid>1C91D772-6CDF-11D9-830B-000393D3DE16</uuid>
<title>Fundamentals of Database Systems, Fourth Edition</title>
<authors>
<author>Ramez Elmasri</author>
<author>Shamkant B. Navathe</author>
</authors>
<publisher>Addison Wesley</publisher>
<published>2003-07-23</published>
<price>104.20</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
</recommendations>
</book>
<book asin="1558604820" created="128136024" lastLookupTime="128136024">
<uuid>F3C7B24F-6CDC-11D9-830B-000393D3DE16</uuid>
<title>A Complete Guide to DB2 Universal Database</title>
<authors>
<author>D. D. Chamberlin</author>
<author>Don Chamberlin</author>
</authors>
<publisher>Morgan Kaufmann</publisher>
<published>1998-08-15</published>
<edition>Paperback</edition>
<price>62.95</price>
<purchaseDate>2005-01-22</purchaseDate>
<netRating>4.4</netRating>
<genres>
<genre>Computer Bks - Data Base Management</genre>
<genre>Computer Books: Database</genre>
<genre>Computers</genre>
<genre>Database Management - General</genre>
<genre>General</genre>
<genre>IBM Database 2</genre>
<genre>Information Storage & Retrieval</genre>
<genre>Relational Databases</genre>
<genre>Computers / Information Storage & Retrieval</genre>
</genres>
<recommendations>
<book asin="0072133449"
created="128136024"
lastLookupTime="128136024">
<uuid>F6B35F21-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2: The Complete Reference (Complete Reference Series)</title>
<authors>
<author>Roman B. Melnyk</author>
<author>Paul C. Zikopoulos</author>
</authors>
<publisher>McGraw-Hill Companies</publisher>
<published>2001-10-01</published>
<price>59.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0130661112"
created="128136024"
lastLookupTime="128136024">
<uuid>F6B97E54-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 UDB v8 Handbook for Windows and UNIX/Linux</title>
<authors><author>Philip K. Gunning</author></authors>
<publisher>Prentice Hall PTR</publisher>
<published>2003-08-06</published>
<price>59.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0131007726"
created="128136024"
lastLookupTime="128136024">
<uuid>F6BCBB88-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 SQL Procedural Language for Linux, Unix and Windows</title>
<authors>
<author>Paul Yip</author>
<author>Drew Bradstock</author>
<author>Hana Curtis</author>
<author>Michael Gao</author>
<author>Zamil Janmohamed</author>
<author>Clara Liu</author>
<author>Fraser McArthur</author>
</authors>
<publisher>Prentice Hall PTR</publisher>
<published>2002-12-24</published>
<price>59.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0131424653"
created="128136024"
lastLookupTime="128136024">
<uuid>F6C0A296-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 UDB V8.1 Certification Exam 700 Study Guide</title>
<authors><author>Roger E. Sanders</author></authors>
<publisher>Prentice Hall PTR</publisher>
<published>2003-09-17</published>
<price>49.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0764508415"
created="128136024"
lastLookupTime="128136024">
<uuid>F6C4058C-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 Fundamentals Certification for Dummies</title>
<authors>
<author>Paul C. Zikopoulos</author>
<author>Jennifer Gibbs</author>
<author>Roman B. Melnyk</author>
</authors>
<publisher>For Dummies</publisher>
<published>2001-08-01</published>
<price>34.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0130463612"
created="128136024"
lastLookupTime="128136024">
<uuid>F6D9A3D8-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 Universal Database V8 for Linux, UNIX, and Windows Database Administration Certification Guide (5th Edition)</title>
<authors>
<author>George Baklarz</author>
<author>Bill Wong</author>
</authors>
<publisher>Prentice Hall PTR</publisher>
<published>2003-02-10</published>
<price>59.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0130463884"
created="128136024"
lastLookupTime="128136024">
<uuid>F6DDBAB9-6CDC-11D9-830B-000393D3DE16</uuid>
<title>Advanced DBA Certification Guide and Reference for DB2 UDB v8 for Linux, Unix and Windows</title>
<authors>
<author>Dwaine R. Snow</author>
<author>Thomas Xuan Phan</author>
<author>Dwaine Snow</author>
</authors>
<publisher>Prentice Hall PTR</publisher>
<published>2003-07-07</published>
<price>59.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="155860443X"
created="128136024"
lastLookupTime="128136024">
<uuid>F6E1063D-6CDC-11D9-830B-000393D3DE16</uuid>
<title>Advanced Database Systems (The Morgan Kaufmann Series in Data Management Systems)</title>
<authors>
<author>Carlo Zaniolo</author>
<author>Stefano Ceri</author>
<author>Christos Faloutsos</author>
<author>Richard T. Snodgrass</author>
<author>V. S. Subrahmanian</author>
<author>Roberto Zicari</author>
</authors>
<publisher>Morgan Kaufmann</publisher>
<published>1997-05-01</published>
<price>88.95</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0131840487"
created="128136024"
lastLookupTime="128136024">
<uuid>F6E441CE-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 UDB V8.1 Certification Exams 701 and 706 Study Guide</title>
<authors><author>Roger E. Sanders</author></authors>
<publisher>Prentice Hall PTR</publisher>
<published>2003-12-12</published>
<price>49.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
<book asin="0132037955"
created="128136024"
lastLookupTime="128136024">
<uuid>F6E77C2C-6CDC-11D9-830B-000393D3DE16</uuid>
<title>DB2 High Performance Design and Tuning</title>
<authors>
<author>Richard Yevich</author>
<author>Susan Lawson</author>
<author>Richard A. Yevich</author>
</authors>
<publisher>Prentice Hall PTR</publisher>
<published>2000-08-24</published>
<price>54.99</price>
<purchaseDate>2005-01-22</purchaseDate>
</book>
</recommendations>
</book>
</items>
<borrowers>
<borrower id="1">
<name> John Doe </name>
<phone> 555-1212 </phone>
<borrowed>
<book asin="0138613370"/>
<book asin="0122513363"/>
</borrowed>
</borrower>
<borrower id="2">
<name> Mary Jane </name>
<phone> 555-1213 </phone>
<borrowed>
<book asin="0201100886"/>
<book asin="0122513363"/>
</borrowed>
</borrower>
<borrower id="3">
<name> Bill Jones </name>
<phone> 555-1312 </phone>
<borrowed />
</borrower>
<borrower id="4">
<name> Anne Marie</name>
<phone> 555-1314</phone>
<borrowed>
<book asin="0138613370"/>
<book asin="0201100886"/>
<book asin="0122513363"/>
<book asin="1558604820"/>
</borrowed>
</borrower>
</borrowers>
</library>
我需要归还所有借书的人,他们的姓名和书名。
这是我的 xQuery:
xquery version "1.0";
for $library in doc("library.xml")/library
for $book in $library/items/book
let $borrowed := $library/borrowers/borrower
return
<borrower>
<name>
{data($borrowed/name)}
</name>
<title>
{data($book[@asin = $borrowed//book/@asin]/title)}
</title>
</borrower>
这是它返回的内容:
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title>Compilers</title>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title>Database Driven Web Sites</title>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title/>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title/>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title/>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title>First Course in Database Systems, A</title>
</borrower>
<borrower>
<name> John Doe Mary Jane Bill Jones Anne Marie</name>
<title>A Complete Guide to DB2 Universal Database</title>
</borrower>
所以第一件事是错误的,它返回了所有借书的人的名字,而不是每个标签一个名字。 其次,它应该返回 8 本书,并且它只返回 7。
谁能帮我理解我的 xQuery 出了什么问题????
我没有使用 XQuery 的经验,但据我所知,您的谓词[@asin = $borrowed//book/@asin]
应该移到let
语句中,否则没有连接,$book 和之间没有链接$借来的。 而且由于您已经在 $book 中有一本特定的书,因此在返回书名时不需要谓词。
坦率地说,我可能会采取另一种方法:与其循环看书,为什么不循环看借款人? 毕竟,你“需要归还所有借书的人,他们的姓名和书名”……
我很确定您正在尝试获取每个借阅者的列表以及他们借阅的书名。 XQuery 的问题在于您正在迭代每个/library/items/book
而不是每个借阅者。 此外,您的示例中只有 7 个/library/items/book
; 不是 8。
这个 XQuery 应该做你想做的事。
XQuery
<borrowers>
{
let $library := doc('library.xml')
for $borrower in $library/library/borrowers/borrower
let $name := $borrower/name
let $asins := data($borrower/borrowed/book/@asin)
let $titles :=
for $asin in $asins
return $library/library/items/book[@asin = $asin]/title
return
<borrower>
{$name}
{$titles}
</borrower>
}
</borrowers>
结果
<borrowers>
<borrower>
<name> John Doe </name>
<title>First Course in Database Systems, A</title>
<title>Database Driven Web Sites</title>
</borrower>
<borrower>
<name> Mary Jane </name>
<title>Compilers</title>
<title>Database Driven Web Sites</title>
</borrower>
<borrower>
<name> Bill Jones </name>
</borrower>
<borrower>
<name> Anne Marie</name>
<title>First Course in Database Systems, A</title>
<title>Compilers</title>
<title>Database Driven Web Sites</title>
<title>A Complete Guide to DB2 Universal Database</title>
</borrower>
</borrowers>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.