我们可以使用IN语句在多个查询中分解SQL连接

The creator of No`orm shows that is possible to decompose a join of 3 tables into 3 faster queries: http://www.notorm.com/#performance.

Do you think that is possible to avoid joins and use multiple queries by putting the IDs in the IN statement?

That library (NoORM) do not support join for the above mentioned reason, do you think I could give up using joins and just use that library? It seems strange to me that it is so easy to avoid joins.

One reason to use joins over individual queries is that it allows the database's optimizer to come up with the best plan for the tables involved, based on the existing data. If you break a joined query out into individual queries, you're effectively hard-coding the execution plan. Among other things, that assumes that you're going to spend some time thinking about the selectivity of your queries when you write your code and that the selectivity will remain the same for the lifetime of your application. Those are pretty big assumptions, in my opinion.

Also, if you're using your database as more than a dumb receptacle, you'll likely find that there are queries that don't break down into individual queries quite so easily (e.g. just about anytime you use aggregate functions).

For a relatively small scale application, this can be feasible. But in situations where you might be passing many arguments (equivalent to your join condition matching on many rows) this will fail you. The best example I can think of why, is a limitation with Informix, for example, (I don't know if this is true of the latest versions) where prepared statements did not allow for more than 20 (not exact) or so arguments to be passed.