我想在像这样的三个表上创建一个内部联接:
SELECT C.Description, D.ItemDescription FROM OrderDetailStatement AS D INNER JOIN OrderHeaderStatement AS H ON H.OrderHeaderStatementRefID = D.OrderHeaderStatementRefID INNER JOIN customers AS C ON H.CustomerRefID = C.CustomerRefID WHERE (D.MixedValue > 1000)
但我有点困惑,您能给我讲解吗?
提前致谢
ORMLite现在支持简单的JOIN语句。您可以执行以下操作:
JOIN
// start the order header query QueryBuilder<OrderHeader, Integer> orderHeaderQb = orderHeaderDao.queryBuilder(); QueryBuilder<Customer, Integer> customerQb = customerDao.queryBuilder(); // join with the order query orderHeaderQb.join(customerQb); // start the order statement query QueryBuilder<OrderStatement, Integer> orderStatementQb = orderStatementDao.queryBuilder(); orderStatementQb.where().gt("mixedvalue", 100); // join with the order-header query orderStatementQb.join(orderHeaderQb); List<OrderStatement> orderStatementQb.query();
但是请注意,使用此机制只能从查询构建器获取实体。如果要从不同的对象获取两个描述字段,则仍必须使用原始查询。
支持“原始查询”,包括Dao.queryRaw()可以使用自己的SQL的方法。我怀疑您已经找到他们了。这是原始查询的文档。
Dao.queryRaw()