我正在try 限制以下SQL语句.
SELECT expense.*, transaction.* FROM expense
INNER JOIN transaction ON expense_id = transaction_expense_id
我想做的是限制"父"行的数量.也就是说,如果我做一个限额1,我只会收到一个费用项目,但仍然会得到与之相关的所有交易.
如何做到这一点呢?
在这个阶段,如果我限制1,我会得到一笔费用,并且只有一笔交易.
我正在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;
本