【问题标题】:How can I apply the LIMIT statement in a SQLite query to a specific side of a join?如何将 SQLite 查询中的 LIMIT 语句应用于联接的特定侧?
【发布时间】:2012-04-19 14:59:05
【问题描述】:

这是我的要求:

我有 2 张桌子,ordersorderContents。对于orders 表中的每一行,都有一定数量的行包含订单的描述。 id 列用作外键。

我想要的是获取每个订单的所有详细信息(来自orderContents 的详细信息,包括来自orders 表的id 列)表,但限制没有。基于公共列的结果(外键,id

问题是它限制orderContents 行,而不是限制order 行。

怎样才能达到想要的效果?

编辑:更新表格和所需的结果集

订单表:

OrderContents 表:

期望的结果将记录数限制为 2:

【问题讨论】:

  • 您可以发布您正在使用的架构吗?
  • 我们需要看看你到目前为止尝试了什么,以及你正在运行什么 DBMS。
  • 你问的问题能再清楚一点吗?也许显示查询的输入和预期输出示例?
  • @Nik : 更新了表格和想要的结果...
  • @JohnFx : 更新了表格和想要的结果...我正在使用 SQLite

标签: sql sqlite


【解决方案1】:

我假设您想说您想要两个表的结果,但只针对前 X 个订单。如果是这样,试试这个:

SELECT OC.*, O.* FROM OrderContents OC
INNER JOIN  (SELECT * 
             FROM Orders 
             ORDER BY ID 
             LIMIT 2) O ON O.ID=OC.ID

【讨论】:

  • 既然用户将此标记为sqllite,那不应该是SELECT * from Orders LIMIT 2吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 2022-12-10
  • 2011-06-25
  • 1970-01-01
  • 2011-03-20
  • 2021-09-27
  • 1970-01-01
相关资源
最近更新 更多