我需要在两个表( order_header和order_item )上实现基于它们的ORDER_ID的内部连接。等价的SQL查询:SELECT * FROM order_header INNER JOIN order_item ON order_header.ORDER_ID=order_item.ORDER_ID如何在ydn-db中实现这一点?
发布于 2014-11-21 23:32:45
使用db.scan连接表。目前,YDN还没有一个很好的加入包装器,但是手动连接并没有那么困难。下面是加入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]);请参阅有关联接查询项目的更多详细信息。
https://stackoverflow.com/questions/27036243
复制相似问题