sql - 在SQLite中限制结果

标签 sql sqlite

我有两个表,customers(具有列AB)和orders(具有列CDA;最后一个是外键)。

该查询返回我感兴趣的数据:

SELECT customers.A, customers.B, orders.C, orders.D 
FROM customers, orders
WHERE customers.A = orders.A AND customers.B < 5 AND orders.D < 5


如果添加LIMIT 10,我将获得前十个10个结果(基本上是10个订单),但是我要做的是基于唯一客户数限制输出。因此,结果中将恰好有10个唯一客户,因此至少有10个(但可能更多)订单。我认为可以通过子查询来做到这一点,但我无法弄清楚。

最佳答案

像这样:

SELECT c.A, c.B, orders.C, orders.D 
FROM (SELECT * FROM customers WHERE customers.B < 5 
      ORDER BY ....some-criteria... 
      LIMIT 10) c,
     orders
WHERE c.A = orders.A AND orders.D < 5


(验证sqlite成功解析了子查询中的LIMIT。希望它不会默默地忽略此LIMIT)。

关于sql - 在SQLite中限制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264690/

相关文章:

java - ListArray 保存相同的记录

SQL Server - 定义中的 View 名称与实际 View 名称不同

c# - 使用平均值时 linq 查询出错

安卓。启动时升级数据库

java - 删除主键最接近X的行

iOS:如何在sqlite中插入特殊字符如 "or '

mysql - 在使用别名的 having 子句中使用子查询

c# - 存储在表中时的转换日期

c++ - 从 std::map 多个键中删除的最佳技术

java - 从外部循环中获取值在内部循环中接收