我正在尝试运行选择查询:
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
}
为什么这样?这有什么不对?
答案 0 :(得分:1)
因为上次查询要求同时为t3
和 t4
的朋友的主题。
如果您想要返回两个结果,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 }
}