「SequoiaDB巨杉数据库」SQL语法-inner join

用于根据两个或多个集合中的字段名之间的关系,从这些集合中查询数据。

语法

<collection1_name | (select_set1)> as <alias1_name> inner join <collection2_name | (select_set2)> as <alias2_name> [on condition]

参数

参数名参数类型描述是否必填
collection1_name/collection2_namestring集合名。
select_set1/select_set2set结果集。
alias1_name/alias2_namestring别名。
conditionexpression集合之间关联条件。

返回值

在集合中存在至少一个匹配时,inner join 返回匹配的记录。

示例

  • 集合 sample.persons 中记录如下。

    { "Id_P": 1, "LastName": "Adams", "FirstName": "John", "Address": "Oxford Street", "City": "London" }
    { "Id_P": 2, "LastName": "Bush", "FirstName": "George", "Address": "Fifth Avenue", "City": "New York" }
    { "Id_P": 3, "LastName": "Carter", "FirstName": "Thomas", "Address": "Changan Street", "City": "Beijing" }

    Copy

  • 集合 sample.orders 中记录如下。

    { "Id_O": 1, "OrderNo": 77895, "Id_P": 3 }
    { "Id_O": 2, "OrderNo": 44678, "Id_P": 3 }
    { "Id_O": 3, "OrderNo": 22456, "Id_P": 1 }
    { "Id_O": 4, "OrderNo": 24562, "Id_P": 1 }
    { "Id_O": 5, "OrderNo": 34764, "Id_P": 65 }

    Copy

  • 列出所有人的订购。

    > db.exec("select t1.LastName, t1.FirstName, t2.OrderNo from sample.persons as t1 inner join sample.orders as t2 on t1.Id_P=t2.Id_P")
    { "LastName": "Adams", "FirstName": "John", "OrderNo": 22456 }
    { "LastName": "Adams", "FirstName": "John", "OrderNo": 24562 }
    { "LastName": "Carter", "FirstName": "Thomas", "OrderNo": 77895 }
    { "LastName": "Carter", "FirstName": "Thomas", "OrderNo": 44678 }
    Return 4 row(s).
    Takes 0.43722s.

    Copy

    Note:

    • 不能包含非联合条件,如下写法是错误的:

      > db.exec( "select T1.a, T2.b from sample.employee1 as T1 inner join sample.employee2 as T2 on T1.a < 10" ) 

      Copy

    • 不能在 inner join 本层使用 select * 语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值