What's wrong is replacing a single query with a join with multiple round trips implementing part of the join logic in application code because you are using an RDBMS as if it were a fairly dumb repository of dusconnected tables.
SELECT id FROM table1
Is fine, if what your app wants is the ids from table1. Its not good if it is just a prelude to: SELECT * FROM table2
WHERE table1_id in (...ids from previous query...)
instead of just doing: SELECT table2.*
FROM table1
INNER JOIN table2 ON (
table2.table1_id == table1.id
)