Re[2]: еще раз вернуться к дереву

2006-11-10 Пенетрантность Константин

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]: еще раз вернуться к дереву

2006-11-09 Пенетрантность Константин

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
  там очень популярно описана твоя ситуация, + и - подобного построения 
запросов ...

С уважением,
Константин Григорьевич.
===