【问题标题】:How to Implement inner join in ydn-db?如何在 ydn-db 中实现内部连接?
【发布时间】:2015-01-18 02:47:27
【问题描述】:

我需要根据ORDER_ID 对两个表order_headerorder_item 实现内连接。等效的 SQL 查询: SELECT * FROM order_header INNER JOIN order_item ON order_header.ORDER_ID=order_item.ORDER_ID 如何在 ydn-db 中实现?

【问题讨论】:

    标签: indexeddb ydn-db


    【解决方案1】:

    使用db.scan 进行表连接。目前 YDN-DB 没有一个很好的加入包装器,但manual joining 并不难。这是SELECT * FROM Supplier, Part WHERE Supplier.CITY = Part.CITY的加入查询。

    var iter_supplier = new ydn.db.IndexValueIterator('Supplier', 'CITY');
    var iter_part = new ydn.db.IndexValueIterator('Part', 'CITY');
    var req = db.scan(function(keys, values) {
      var SID = keys[0];
      var PID = keys[1];
      console.log(SID, PID);
      if (!SID || !PID) {
        return []; // done
      }
      var cmp = ydn.db.cmp(SID, PID); // compare keys
      if (cmp == 0) {
        console.log(values[0], values[1]);
        return [true, true]; // advance both
      } else if (cmp == 1) {
        return [undefined, SID]; // jump PID cursor to match SID
      } else {
        return [PID, undefined]; // jump SID cursor to match PID
      }
    }, [iter_supplier, iter_part]);
    

    Join query article上查看更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2013-06-02
      相关资源
      最近更新 更多