title: How to self JOIN recursively in SQL?
body: <p>I have a table:</p>
  
  <pre>
  Series
  ========
  ID
  SeriesName
  ParentSeriesID
  </pre>
  
  <p>A series can be a "root" series, (<code>ParentSeriesID</code> is 0 or null) or it can have a Parent.  A series can also be several levels down, i.e. its Parent has a Parent, which has a Parent, etc.</p>
  
  <p>How can I query the table to get a Series by it's ID and ALL descendant Series' ?  </p>
  
  <p>So far I have tried:</p>
  
  <pre><code> SELECT child.*
   FROM Series parent JOIN Series child ON child.ParentSeriesID = parent.ID
   WHERE parent.ID = @ParentID
  </code></pre>
  
  <p>But this only returns the first level of children, I want the parent node, and all "downstream" nodes.  I am not sure how to progress from here.  </p>