|
Тема |
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>
|
| |
|
|
|