title: Sybase outer join behaviour
body: <p>I'm working on some legacy SQL (written in sybase lingo) and converting it to SQL-92 compatible form. The problem is, I'm unable to understand how "*=" behaves.</p>
  
  <p>the query (appropriately censored):</p>
  
  <pre><code>SELECT 
      C.*, SUM(P.qty) from Cars C, Parts P
  WHERE 
      C.carid = 1
  AND C.carid *= P.carid
  AND C.missingpart *= P.missingpart
  AND C.manufacturer *= P.manufacturer
  AND P.qty is not null
  GROUP BY C.carid, C.missingpart, C.manufacturer
  </code></pre>
  
  <p>I converted it to:</p>
  
  <pre><code>SELECT
      C.*, SUM(P.qty) from Cars C
          LEFT JOIN Parts P
          ON C.carid = P.carid
          AND C.missingpart = P.missingpart
          AND C.manufacturer = P.manufacturer
  WHERE
      C.carid = 1
  AND P.qty is not null
  GROUP BY C.carid, C.missingpart, C.manufacturer
  </code></pre>
  
  <p>But turns out - they are not equivalent. Can someone help me understand what is the exact behaviour of "*=" in sybase outer joins and why my two queries are not identical?</p>
  
  <p>Thanks :)</p>
  
  <p>PS: I'm using Sybase ASE TDS 5.5</p>