sparql 多表查询
有多个表的数据转换为rdf数据,且多个表为关联,即有一个主表,多个子表。
主表A: id[主键] , a1, a2
子表B: id[外键,主键] , b1, b2
做一些处理将前缀去掉,具体可参考
参考
查询语句:
SELECT DISTINCT * WHERE {
?s :id 1.
?x :id ?s.
?s :a1?a1.
?s :a2?a2.
optional{
?x :b1 ?b1.
}
}
LIMIT 10
结果就可以查询到表A的a1, a2 和表B的b1 条件为id =1, 其中B中b1不一定有值,可以使用optional 进行过滤,使其显示出来。
相当于SQL语句
SELECT A.a1, A.a2, B.b1 FROM A LEFT OUTER JOIN B ON A.id=B.id;