Re[2]: еще раз вернуться к дереву
D Константин wrote: PS: Ещё раз рекомендую http://ibase.ru/devinfo/joins.htm, не поленись почитай ... D Это, безусловно, правильно. И направление вопрошающего в нормальные D джойны вместо подзапросов и даденных в двойке в руки кому попало гранат D с деривед таблес тоже. Ну так кто учил ... ;) D Однако, дальнейшие размышлизмы в целом D представляют собой прекрасную иллюстрацию того, как, глядючи на D следствия, пытливый ум может придумать совершенно неверные для них D причины, не обладая достаточной информацией об устройстве чорного ящика. Человеку было всегда свойственно придумывать себе страхи, демонов, богов ... вообщем-то суеверия основанные на субьективных ощущениях Может я и погарячился, но это было моё мнение не претендующее на правоту ... Просто смутно вспоминается мои подобные же потуги ещё на FB 1 года 3-5 назад ещё на epsylon ... ;) К сожалению, этих постов у меня не сохранилось посему рассказал то что мне вспомнилось/придумалось по ходу дела ;) По крайней мере откровенно человека не пытался дезинформировать ;) D Я вот, как и Олег, не в курсах насчёт новшеств с объединениями с D процедурами в двойке, посему помалкиваю. А так - явный и неявный иннер D джойны абсолютно равноправны (а неявные аутеры в природе просто не D наблюдаются), от порядка следования условий в запросе мало что зависит, D применяются оне вовсе не сверху вниз по строкам запроса, процедура в D иннере может быть только ведущей, посему пофиг на какой строчке её D писать, парсер разберётся... Ну, спорить с Дедом - себе дороже ... ;) Скажем так - я привык к порядку в запросах. Если что где вяжется то это должно быть видно и логическая цепочка должна прослеживаться сразу, быстро и чётко ... PS: Всё-же меня терзают смутные сомнения насчёт SP и JOIN ... Кто нибуть может, если не влом, посмотреть посты 2000-2003 гг ? Кажется я тогда ещё aLKoGolik подписывался ... lkg[#]sentosa.dp.ua адресок был ... Тогда я задавал подобный же вопрос ... (просто для успокоения совести ...) С уважением, Константин Григорьевич. ===
Re[2]: еще раз вернуться к дереву
NT оба варианта ни к чёрту :) NT select p.* from from recurs_groups(:id_groups) g NT join products p on g.id=p.id_group NT Да? Для экспериментов взят FB2rc3 Тогда запрос: NT select p.name,p.fullname,p.description, NTsum(di.qty),di.price_prov,di.price,di.discount, NTd.date_docum,d2.date_docum,f.name,g.name,f.code NT from products p, docum_items di, documents d, firms f, NT product_cards pc, docum_items di2, documents d2, groups g, NT (select id from recurs_groups(0)) rg NT where (p.id_product = di.id_product) NT and rg.id=p.id_group NT and (d.id_docum = di.id_docum) NT and (d.date_docum between '01.09.2006' and '09.11.2006') NT and (d.id_operation = 2) NT and (d.id_firm = f.id_firm) NT and (di.id_card = pc.id_card) NT and (pc.id_docitem = di2.id_docitem) NT and (di2.id_docum = d2.id_docum) NT and (p.id_group = g.id_group) NT group by p.name,p.fullname,p.description, NT NT di.price_prov,di.price,di.discount,d.date_docum,d2.date_docum,f.name,g.name,f.code (дальше поскипано) Я конечно не гуру, но ты, ИМХО, не обратил внимание на ЯВНЫЙ JOIN это раз. Два - попробуй всё-же переписать свой запрос поставив выборку из SP на первое место. Да и потом, не знаю как кто, но лично я за такие запросы ... ну почему не вязать явнымии Join ? И парсеру легче и тебе было-бы понятней ... А вообще-то тебе с такими запросами сюда: http://ibase.ru/devinfo/joins.htm там очень популярно описана твоя ситуация, + и - подобного построения запросов ... С уважением, Константин Григорьевич. ===