我是XQuery的新手,我試圖找出一些非常簡單的東西,但我似乎很失敗。 我公司員工的XML文件中的一個公司,看起來像這樣:使用XQuery返回使用不同條件的多個屬性
<dataroot>
<employee>
<fname>John</fname>
<minit>B</minit>
<lname>Smith</lname>
<ssn>123456789</ssn>
<bdate>1965-01-09</bdate>
<address>731 Fondren, Houston, TX</address>
<sex>M</sex>
<salary>30000</salary>
<superssn>333445555</superssn>
<dno>5</dno>
</employee>
<employee>
<fname>Franklin</fname>
<minit>T</minit>
<lname>Wong</lname>
<ssn>333445555</ssn>
<bdate>1955-12-08</bdate>
<address>638 Voss, Houston, TX</address>
<sex>M</sex>
<salary>40000</salary>
<superssn>888665555</superssn>
<dno>5</dno>
</employee>
...etc
而這正好爲所有僱員。我也有類似如下的家屬XML文件:
<dependent>
<essn>123456789</essn>
<dependent_name>Alice</dependent_name>
<sex>F</sex>
<bdate>1988-12-30</bdate>
<relationship>daughter</relationship>
</dependent>
<dependent>
<essn>123456789</essn>
<dependent_name>Elizabeth</dependent_name>
<sex>F</sex>
<bdate>1967-05-05</bdate>
<relationship>spouse</relationship>
</dependent>
...and so on
我的問題是,我試圖運行,返回的依賴,名字的名字和姓氏的XQuery與該受撫養人有關的僱員以及該僱員經理的名字和姓氏。 由於經理的ssn必須與員工的ssn進行比較以獲取經理的姓名(普通員工和經理都是員工檔案的一部分),所以我在訪問經理信息時遇到了麻煩。
這是我到目前爲止有:
<results>
{
for $e in doc("../company/employee.xml")//employee,
$m in doc("../company/employee.xml")//employee
$d in doc("../company/dependent.xml")//dependent
return
<ans
dname="{ $d/dependent_name }"
emp fname="{ $e/fname }"
emp lname="{ $e/lname }"
mgr fname="{ } (: *this is where I get lost* :)
/>
}
</results>
所以我想我的具體問題是: 看到,因爲我可以訪問從Employee.xml每個員工,並從Dependent.xml文件中的每個相關WITHOUT使用條件(WHERE $ e/superssn = $ m/essn)如何返回所有這些值,因爲只有一個返回的結果需要條件語句?
這幫了很多,非常感謝!我絕對誤解了'讓'的正確使用,因此我更加困惑。我會接受你的建議,並採取具體措施。非常有幫助,再次感謝。 – mugiwaragirl
@ mugiwaragirl投票(如果它解決了你接受答案的問題),答案是在SO上說「謝謝」。並且看到你是一個經驗不足的用戶(基於你的代表):歡迎來到SO :)當然也是奇妙的XQuery世界;) – dirkk
是的,我是全新的,你怎麼知道? ;)我感謝熱烈的歡迎! – mugiwaragirl