title: Where no record exists between two dates in a joined table
body: <p>I'm trying to select all of our items that have not sold at all in the past 2 months.</p>
  
  <p>I'm trying to use this query, but it's not working as expected:</p>
  
  <pre><code>SELECT SalesDescription FROM Items I
  LEFT JOIN Orders_Items OI
  ON OI.ItemID=I.ItemID
  
  LEFT JOIN Orders O
   ON O.OrderID=OI.OrderID
  
  WHERE OrderTime NOT BETWEEN date_sub(curdate(), interval 2 month)
  AND date_sub(curdate(), interval 1 day)
  Group By I.ItemID
  </code></pre>
  
  <p>Basically, I want to get all of the records from the Items table (grouped by item id), if and only if they have not been ordered within the past two months.</p>
  
  <p>When I do my join above, the resulting table is something like:</p>
  
  <pre><code>Name        OrderID     OrderDate
  Widget A     1          Last Year    
  Widget B     2          Last Week
  Widget C     3          Last Year
  Widget C     4          Last Week
  </code></pre>
  
  <p>My result should return only Widget A, since it was not ordered in the last 2 months. The fact that is was ordered over a year ago is not relevant.</p>
  
  <p>Widget C should not appear because an order containing a Widget C was placed in the past 2 months.</p>
  
  <p>The problem is, the records I want won't have a date range associated with them. Another way to word it is:</p>
  
  <p>I want to start with all of the items in the Items table, and then exclude the ones that have orders attached AND at least one of those attached orders was placed within a 2 month range.</p>
  
  <p>How can I get that?</p>