2017-02-24 48 views
1

我試圖在運行門生選擇查詢:SPARQL SELECT查詢不工作的門徒多場比賽

SELECT ?subject WHERE { 
    ?subject uni4:friendof uni4:t3 .         
} 

上面的查詢給「D3」的結果。

SELECT ?subject WHERE { 
    ?subject uni4:friendof uni4:t4 .         
} 

該查詢給出'd4'作爲結果。

但是當我運行以下查詢時,我得不到任何結果。

SELECT ?subject WHERE {  
    ?subject uni4:friendof uni4:t3 .         
    ?subject uni4:friendof uni4:t4 
} 

爲什麼會這樣?這裏有什麼問題?

回答

1

因爲最後的查詢請求的主題都是t3t4的朋友。

如果你想有兩個結果返回,UNION是要走的路:

SELECT DISTINCT ?subject WHERE { 
{ ?subject uni4:friendof uni4:t3 } 
UNION         
{ ?subject uni4:friendof uni4:t4 } 
} 

或者在SPARQL 1.1可以使用VALUES更緊湊的替代:

SELECT DISTINCT ?subject WHERE { 
    ?subject uni4:friendof ?friend 
    VALUES ?friend { uni4:t3 uni4:t4 } 
} 
+0

感謝,得到了它:) –