I have three tables,
select * from Foos where X
select * from FoosBars inner join Foos on Foos.Id=FoosId where X
Select *, (select BarsId
from [this Foo]
inner join FoosBars on Foos.Id=FoosId
) as BarIds
Subquery in the select must return one value so the provided example is invalid. Moreover when you execute a query you should expect a result set (i.e collection of rows), not an array, or any other type.
Nothing prevents you from using it in the most simple manner:
select * from [Foos] inner join FoosBars on Foos.Id=FoosId
You might need to consider changing the way you populate your objects based on this result set.
For each row: