首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用LogicBlox实现按键查询

用LogicBlox实现按键查询
EN

Stack Overflow用户
提问于 2016-07-27 03:20:03
回答 2查看 55关注 0票数 0

如果我有两个谓词(非函数式):

代码语言:javascript
复制
addblock 'city(city_dim_id) -> int(city_dim_id).'
addblock 'city_name[city_dim_id] = name -> int(city_dim_id), string(name).'

我可以补充一些事实:

代码语言:javascript
复制
exec '+city(1).'
exec '+city_name[0] = "N/A".'
exec '+city_name[1] = "Chicago".'

下面是对谓词中的事实的查询:

代码语言:javascript
复制
query '_(city_name) <- city_name(city_name, _).'
query '_(city_name) <- city_name(_, city_name).'
query '_(city_dim_id, city_name) <- city_name(city_dim_id, city_name).'

我的问题是如何查询以显示1.两个表中的city_dim_id是什么? 2.返回city_dim_id和city_name,但只返回city_dim_id在两个表中的位置?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-07-27 16:02:03

对不起,我很难理解这个问题。下面的代码将返回具有相同city_name的city_dim_id。

代码语言:javascript
复制
_(c1, c2) <-
    city(c1),
    city(c2),
    city_name[c1] = city_name[c2],
    c1 != c2.
票数 0
EN

Stack Overflow用户

发布于 2016-07-28 03:51:05

  1. 如果你说的‘在两个表中都存在’是指‘在两个表中都存在’,那么你想

_(id) <-城市(Id),city_nameid =_。

另一方面,如果你想要两个表中的id,你需要用析取来代替合取。

代码语言:javascript
复制
_(id) <- city(id); city_name[id] = _.

  1. 我想你想

_(id,名称) <-城市(Id),city_nameid =名称。

注意:如果使用方括号语法city_name[id] = name,则谓词将是函数式的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38598215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档