title: When you have two models connected by a foreignkey in django do you need to do a join?
body: <p>The Django docs are not plainly stating this and its getting annoying. </p>
  
  <p>Observe the following models:</p>
  
  <pre><code># models
  class Venue(models.Model):
      name = models.CharField(max_length=150, blank=False)
      description = models.CharField(max_length=1000)
      image = models.ImageField(upload_to=imgUnique('venueMedia/venueImages'))
      streetAddress= models.CharField(max_length=100)
      city = models.CharField(max_length=100, blank=False)
      state = models.CharField(max_length=100, blank=False)
  
  
  class Room(models.Model):
      name = models.CharField(max_length=150, blank=False)
      venue = models.ForeignKey(Venue, related_name='rooms', on_delete=models.CASCADE)
      description = models.CharField(max_length=1000)
      standingCapacity = models.IntegerField
      seatedCapacity = models.IntegerField
      image = models.ImageField(upload_to=imgUnique('venueMedia/venueImages'))
  </code></pre>
  
  <p>I have a foreign key relationship into <code>Venue</code> in the <code>Room</code> model in the rooms <code>venue</code> property. </p>
  
  <p>Do I need to join those tables? Or will a <code>Venue.objects.all()</code> do that for me automatically?  If not I have the raw sql as follows will this work: </p>
  
  <pre><code> venueList = Venue.objects.raw('''SELECT *
                                FROM venue_Venue
                                INNER JOIN venue_Room
                                ON venue_Venue_id=venue_Room_id''')
  </code></pre>
  
  <p>if not that then I understand there is a <code>select_related()</code> method and my understanding is that I would do the following:</p>
  
  <pre><code>Venue.objects.all().select_related('Room') 
  </code></pre>
  
  <p>Can we get this clear? As you can see I have done alot of research but am still confused </p>