Database Request with entry variable as argument
hmm, wat do you mean with sub_entries? As a general pointer I would do it like this: 

{% set books = craft.entries.section('books') %} 


and then loop over the books. 

To get back to your question, I would suggest moving all the different sections into 1 channel with multiple types in it. For example:

Channel: Media

Types: 


Books
Games
Movies


Then you can query them like this: 

{% set books = craft.entries.section('media').type(['books']) %}

{% for entry in books %}
    &lt;h2&gt;{{entry.title}}&lt;/h2&gt;
{% endfor %}


More info on types here