|  | | 
| 
          | 
              
                | Тема |  Re: Благодаря [re: Masklin] |  |  | Автор | wqw (АзСъмЖив) |  |  | Публикувано | 05.03.08 19:59 |  |  |  | 
        
 Мне е декартовото произведение. Просто по дефиниция OUTER JOIN е INNER JOIN който е UNION ALL с NOT IN така някак:
 
 SELECT a.*, b*
 FROM a
 JOIN b
 ON a.pk = b.a_fkey
 
 UNION ALL
 
 SELECT a.*, NULL, NULL, NULL, ...
 FROM a
 WHERE a.pk NOT IN (SELECT a_fkey FROM b)
 
 Аз лично ползвам old-school аналозите щото са >= бързи от OUTER JOIN-а (това при MSSQL). Чат-пат db-engine-а не може да съобрази, че няма да дублира редове от a заради JOIN-а. Със sub-select винаги се ориентира че резултатът е подмножество на a (логично като няма нищо друго във FROM клаузата:-)).
 
 cheers,
 </wqw>
 
 
 
 
 
 |  |  |  |  
 |   | 
 |