我有两个表,customers
(具有列A
,B
)和orders
(具有列C
,D
,A
;最后一个是外键)。
该查询返回我感兴趣的数据:
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/