2011-05-01 3 views
0

Вот мой XML:XQUERY возвращение все значения, но один

<?xml version="1.0" encoding="utf-8"?> 
<library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="library.xsd"> 
<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 &amp; Retrieval</genre> 
    <genre>Relational Databases</genre> 
    <genre>Computers/Information Storage &amp; 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> 

Вот мой XQuery:

xquery version "1.0"; 
for $library in doc("library.xml")/library 
for $book in $library/items/book 
let $borrowed := $library/borrowers/borrower/borrowed/book 
where not($borrowed[@asin = $book/@asin]) 
    and ($book/authors/author = "Jeffrey D. Ullman") 
return 
if($book/authors/author != "Jeffrey D. Ullman") 
then <librarytitle>{$book/authors/author}</librarytitle> 
else <librarytitle/> 

Мне нужно вернуть всех авторов, где Jeff D Ульман является но в списке я не могу вернуть его имя. Поэтому я получаю все книги, в которых он автор, и распечатывает их. Если его имя не распечатано. Оператор My if then else не работает. Есть идеи????

+0

Можете ли вы добавить пример того, как должен выглядеть ваш вывод? –

+0

имя идет здесь имя идет здесь имя идет здесь ... это просто не может содержать имя Джеффса в нем – zach

ответ

1

Похоже, вы слишком усложняете это. Глядя на ваш XQuery, кажется, что вы пытаетесь перечислить всех авторов, которые соавторировали книги с Джеффом Д. Ульманом. Также кажется, что вы исключаете книги, которые заимствованы.

Если вы посмотрите на свой XML, вы увидите, что есть 3 книги, в которых есть автор Джефф Ульман. Вот @asin значения от 3:

/library[1]/items[1]/book[1]/@asin - 0201100886 
/library[1]/items[1]/book[3]/@asin - 0201441241 
/library[1]/items[1]/book[6]/@asin - 0138613370 

Из этих 3-х книг, 2 из них заимствованы:

(Примечание: Обе книги показывают дважды, потому что есть 2 разных заемщиков, которые позаимствовали эти книги .)

/library[1]/borrowers[1]/borrower[1]/borrowed[1]/book[1]/@asin - 0138613370 
/library[1]/borrowers[1]/borrower[2]/borrowed[1]/book[1]/@asin - 0201100886 
/library[1]/borrowers[1]/borrower[4]/borrowed[1]/book[1]/@asin - 0138613370 
/library[1]/borrowers[1]/borrower[4]/borrowed[1]/book[2]/@asin - 0201100886 

Это оставляет только книгу /library[1]/items[1]/book[3]/@asin - 0201441241. В этой книге только 2 соавтора.

XQuery ниже возвращает правильные имена соавторов.

XQuery

<coauthors> 
{ 
let $library := doc('library.xml')/library 
let $authors := $library/items/book[not(@asin = $library/borrowers/borrower/borrowed/book/@asin)]/authors/author[following-sibling::author[.='Jeffrey D. Ullman'] or preceding-sibling::author[.='Jeffrey D. Ullman']] 
for $author in distinct-values($authors) 
    return <name>{$author}</name> 
} 
</coauthors> 

Результаты

<coauthors> 
    <name>John E. Hopcroft</name> 
    <name>Rajeev Motwani</name> 
</coauthors> 
0

Это XQuery:

<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    { 
    let $borrowed := /library/borrowers/borrowed/book/@asin 
    for $book in /library/items/book 
    let $match := $book/authors/author[. eq 'Jeffrey D. Ullman'] 
    where exists($match) 
      and 
      not($book/@asin = $borrowed) 
    return 
     <book> 
      {$book/(@asin|title)} 
      <authors> 
      {$book/authors/author except $match} 
      </authors> 
     </book> 
    } 
</result> 

Выход:

<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <book asin="0201100886"> 
     <title>Compilers</title> 
     <authors> 
      <author>Alfred V. Aho</author> 
      <author>Ravi Sethi</author> 
     </authors> 
    </book> 
    <book asin="0201441241"> 
     <title>Introduction to Automata Theory, Languages, and Computation (2nd Edition)</title> 
     <authors> 
      <author>John E. Hopcroft</author> 
      <author>Rajeev Motwani</author> 
     </authors> 
    </book> 
    <book asin="0138613370"> 
     <title>First Course in Database Systems, A</title> 
     <authors> 
      <author>Jennifer Widom</author> 
     </authors> 
    </book> 
</result> 
Смежные вопросы