我正在try 限制以下SQL语句.

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

我想做的是限制"父"行的数量.也就是说,如果我做一个限额1,我只会收到一个费用项目,但仍然会得到与之相关的所有交易.

如何做到这一点呢?

在这个阶段,如果我限制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)

这能满足你的要求吗?显然,你需要谨慎对待你的消费ID返回的顺序,所以你可能想按任何顺序使用order.

编辑:考虑到您在下面的 comments 中描述的MySQL限制,这可能会起作用:

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

Database相关问答推荐

如何在维护数据库模型的同时从Firestore中删除文档?

避免数据库联接的两个查询替换

如何在 Big Data 中进行模糊搜索

在 bindParam 中使用 LIKE 进行 MySQL PDO 查询

创建数据库索引有哪些最佳实践和经验法则?

如何手动卸载 Oracle?

SQLite 如果列存在

Postgres - 如何返回缺失数据计数为 0 的行?

Spring 的 JdbcTemplate 是否在查询超时后关闭连接?

SQLAlchemy 和 django,准备好生产了吗?

在 Slick 3 的事务中执行非数据库操作

如何在实体-属性-值设计中处理不同的数据类型(例如,具有多列的单个表或每种数据类型的多个表)?

表模块与域模型

PostgreSQL 哈希索引

dbvisualizer:在 Select 查询中设置最大行数

如何处理数据库中用户的身份验证/授权?

关系未更新的 NSFetchedResultsController

最小覆盖和功能依赖

在 Django 中,如何从数据库中 Select 100 条随机记录?

PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 类似功能是什么