title: Scala Slick filter and join
body: <p>When performing filter-joins in Slick, what is the difference under the hood between the following two methods? </p>
  
  <pre><code>val query = for {
   c &lt;- coffees if c.price &lt; 9.0
   s &lt;- c.supplier -- assuming there is a foreign key
  } yield (c.name, s.name)
  </code></pre>
  
  <p>and</p>
  
  <pre><code>val query = for {
   (cof, sup) &lt;- coffees.filter(_.price &lt; 9.0) join supplier on(_.supId === _.id)
  } yield (cof.name, sup.name)
  </code></pre>