So assuming we can exclude the user table, it could be rewritten as:
select * from expense, transaction where expense_id = transaction_expense_id
Now if you want to apply a limit, you could do it like this:
select * from expense, transaction where expense_id = transaction_expense_id and
expense_id in (select expense_id from expense limit 1)
Would that do what you wanted? Obviously you need to be cautious about what order your expense_ids are going to come back in, so you probably want to use ORDER BY whatever.
Edit: Given the MySQL limitation described in your comment below, maybe this will work:
select * from (select id from expense order by WHATEVER limit 1) as t1, transaction where expense_id=transaction_expense_id;
Ben
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…