我想知道是否有办法将两个或多个结果集合并为一个。
我实际上需要执行多个查询并返回一个结果集。我不能使用UNION或JOIN操作符,因为我正在使用Cassandra(CQL)
提前谢谢!
答案 0 :(得分:4)
像Playorm这样的框架为Cassandra中的JOIN(INNER和LEFT JOINs)查询提供支持。
http://buffalosw.com/wiki/Command-Line-Tool/
您可以在以下位置看到更多示例:
https://github.com/deanhiller/playorm/blob/master/src/test/java/com/alvazan/test/TestJoins.java
答案 1 :(得分:3)
如果您想要查询同一列族中的多个行,可以使用IN关键字:
SELECT * FROM testCF WHERE key IN ('rowKeyA', 'rowKeyB', 'rowKeyZ') LIMIT 10;
这将从每行返回10个结果。
如果您需要连接不同CF的结果,或者使用不同的WHERE子句进行查询,那么您需要运行多个查询并将结果合并到代码中 - cassandra不会满足这种情况。
答案 2 :(得分:2)
PlayOrm可以进行连接,但您可能需要启用PlayOrm分区才能进行扩展。 (即你不想加入10亿行,10亿行)。通常情况下,您将一个分区与另一个分区或Account表上的分区连接,以加入Users表上的分区。即。确保你仍然为比例设计。