当前位置: 首页 > 面试题库 >

限制SQL JOIN

戚晨
2023-03-14
问题内容

我试图限制以下SQL语句。

SELECT expense.*, transaction.* FROM expense
INNER JOIN transaction ON expense_id = transaction_expense_id

我想做的是限制“父”行的数量。IE。如果我执行LIMIT 1,我将只收到一个费用项目,但仍获得与其相关的所有交易。

这将如何实现?

在此阶段,如果我执行LIMIT 1,我将获得一笔费用,并且只有一笔交易。


问题答案:

因此,假设我们可以排除用户表,则可以将其重写为:

select * from expense, transaction where expense_id = transaction_expense_id

现在,如果您想应用一个限制,您可以这样做:

select * from expense, transaction where expense_id = transaction_expense_id and 
  expense_id in (select expense_id from expense limit 1)

那会做你想要的吗?显然,您需要对您的Expense_ids会返回的顺序保持谨慎,因此您可能想使用ORDER BY。

编辑:鉴于您在下面的评论中描述的MySQL限制,也许可以使用:

select * from (select id from expense order by WHATEVER limit 1) as t1, transaction where expense_id=transaction_expense_id;



 类似资料:
  • 使用next export,我们创建了个静态 HTML 应用。构建时将会运行页面里生命周期getInitialProps 函数。 req和res只在服务端可用,不能通过getInitialProps。 所以你不能预构建 HTML 文件时动态渲染 HTML 页面。如果你想动态渲染可以运行next start或其他自定义服务端 API。

  • 对“每个具体类映射一张表”(table per concrete-class)的映射策略而言,隐式多态的方式有一定的限制。而 <union-subclass> 映射的限制则没有那么严格。 下面表格中列出了在 Hibernte 中“每个具体类一张表”的策略和隐式多态的限制。 表 9.1. 继承映射特性(Features of inheritance mappings) 继承策略(Inheritanc

  • 问题内容: 我正在通过migrations.changeColumn函数在迁移中添加一个约束。 添加约束是可行的,但是由于您需要提供Possibly unhandled SequelizeDatabaseError: relation “myAttribute_unique_idx” already exists`。 (使用的数据库是postgres) 我也尝试过使用removeIndex 但是在

  • 我正在使用quarkus.rest客户端调用外部API,并希望将这些调用的频率限制在每秒50次,这样我就不会淹没外部服务。在没有侧车方法的情况下(通过代码),推荐的实现方法是什么?

  • 问题内容: 我在实践中阅读Java Concurrency,并且有点与线程限制概念混淆。这本书说 当一个对象被限制在一个线程中时,即使该限制对象本身不是一个线程,这种使用也是自动的线程安全的 那么,当一个对象被限制在一个线程中时,没有其他线程可以访问它吗?那就是局限于线程吗?如何将对象限制在线程中? 编辑: 但是,如果我仍然想与另一个线程共享对象怎么办?假设在线程A完成对象O后,线程B想要访问O。

  • 问题内容: 我有表-s在许多一对多的关系与-s 目标是通过单个查询列出球员及其“前三项技能”。 小提琴 查询: 正如您在小提琴中看到的那样,查询结果仅缺少3个技能的限制。 我尝试了子查询的几种变体..联接等等,但是没有任何效果。 问题答案: 一种比较古怪的方法是对结果进行后处理: 当然,这是假设您的技能名称不包含逗号,并且数量很少。 小提琴 一个功能请求用于支持一个明确的条款是可惜还是没有得到解决