我试图显示一个充满 SimpleCursorAdapter 的 ListView。SimpleCursorAdapter 接收一个 Cursor,其中填充了 rawQuery 的执行,例如:
SELECT DISTINCT s.cod AS _id, s.name AS name FROM supplier s
INNER JOIN product p ON p.supplier = s.cod
INNER JOIN productprice pp ON pp.product = p.cod
WHERE
pp.category = 'w'
ORDER BY s.name
当我直接在基中执行此查询时,它会在不到 0.1 秒(正常)内返回 40 行。存储库中 rawQuery 的执行也非常快。问题是当我做myListView.setAdapter(simpleCursorAdapter);
. 需要2分钟以上!所以我已经将查询更改为SELECT cod AS _id, name FROM supplier ORDER BY name
并且执行setAdapter
速度非常快(“正常快速”hshs)。
我的问题:存在我可以在 rawQuery 中执行以填充 listView 的 JOIN 限制吗?难道我做错了什么?我应该在存储库中使用 query() 而不是 rawQuery() 吗?
对不起英语,提前谢谢。