Таким образом, предполагая, что мы можем исключить пользовательскую таблицу, она может быть переписана как:
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)
Будет ли это делать то, что вы хотели? Очевидно, вы должны быть осторожны с тем, в каком порядке будут возвращаться ваши cost_ids, поэтому вы, вероятно, захотите использовать ORDER BY.
Редактировать: Учитывая ограничение MySQL, описанное в вашем комментарии ниже, возможно, это будет работать:
select * from (select id from expense order by WHATEVER limit 1) as t1, transaction where expense_id=transaction_expense_id;
Ben