如何查询logicblox

时间:2016-05-25 09:03:14

标签: sql logicblox logiql

我有一个实体谓词,例如。 "人"与相关的功能谓词存储有关实体的属性。

例如

Person(x), Person:id(x:s) -> string(s).

Person:dateOfBirth[a] = b -> Person(a), datetime(b).
Person:height[a] = b -> Person(a), decimal(b).
Person:eyeColor[a] = b -> Person(a), string(b).
Person:occupation[a] = b -> Person(a), string(b).

我想做的是在终端中,做相当于SQL查询的内容:

SELECT id, dateOfBirth, eyeColor FROM Person

我知道print命令可以获取单个函数谓词的详细信息,但我希望得到它们的组合。

lb print /workspace 'Person:dateOfBirth'

2 个答案:

答案 0 :(得分:2)

您可以使用" lb查询"命令对您的数据库执行任意logiql查询。实际上,您可以使用要查看的结果创建临时的匿名谓词,然后使用logiql语言创建用于填充该谓词的规则。所以在你的情况下它会是这样的:

lb query <workspace> '_(id, dob, eye) <- 
  Person(p),
  Person:id(p:id),
  Person:dateOfBirth[p] = dob,
  Person:eyeColor[p] = eye.'

答案 1 :(得分:0)

尝试使用联接查询命令:

lb query /workspace '_(x, y, z) <- Person(p), Person:id(p:x), Person:dateOfBirth[p] = y, Person:eyeColor[p] = z.'