kosteek писал(а):Прошу обратить внимание на последний запрос который я писал выше, а именно на часть:
- Код: Выделить всё
FROM CLIENTS,
(select * from EMPLOYEES) as CREATOR_EMPL,
(select * from EMPLOYEES) as EDITOR_EMPL
WHERE CREATOR_EMPL.EMPLOYEE_ID = CLIENTS.CREATOR AND (EDITOR_EMPL.EMPLOYEE_ID = CLIENTS.EDITOR OR CLIENTS.EDITOR IS NULL)
Вот как раз по конвейеру, буду временно выбраны две разные таблицы с одинаковым содержание (CREATOR_EMPL и EDITOR_EMPL не одно и тоже, но взяты с одной таблицы EMPLOYEES), что и решает проблему CLIENTS.CREATOR = CLIENTS.EDITOR
Будет работать, но по оптимизации не рекомендуют, при больших таблицах может кушать много оперативки при работе и выдавать долгую выборку.
А с JOIN парсеру понятно как будут использоваться данные, и где можно оптимизировать процесс.
Добавлено спустя 19 минут 2 секунды:vitaly_l писал(а):olegy123 писал(а):[EMPLOYEES.EMPLOYEE AS "CREATORLOOKUP"] = [EMPLOYEES.EMPLOYEE AS "EDITORLOOKUP"] - неверное построение запроса.
Естественно ложное! Разве это может быть иначе? От того что, они записаны в разные переменные они не перестали быть одним и тем-же.
Когда ты на заводе за конвейером и херачишь план, сверху дают команду (сейчас обрезаем NULL) - пришло фура с Array быстренько перегрузил в другую фуру - оставил там NULL. И отправил дальше.
Другой на выдче результата (SELECT комманда) смотрит, что нужно (Array_A[0] как номер,Array_A[1] как номер,Array_B[5] как текст,Array_A[2] как номер,Array_B[5] как текст,...)
vitaly_l писал(а):olegy123 писал(а):на узлах могут быть разные результаты..
ПРОТЕСТУЮ!!!!!!! там всегда одинаковые результаты. <== это программа, а не гололёд. здесь вам не хоккей!
Ну SELECT-комманда видит схему ..
Array_B[5] как текст,Array_A[2] как номер,
Array_B[5] как текст,. - два раза
Array_B[5] как текст - шеф требует, шефу так нравится..
vitaly_l писал(а):olegy123 писал(а):Но так как название одно и тоже в таблице - то он думает
ПРОТЕСТУЮ!!!!!!! ОН НЕ ДУМАЕТ!!! ОНО ЖЕЛЕЗКА (
пока ещё)
сначала думает парсер.. что он думает когда встретились одинаковые слова? а ему нужно с оптимизировать сложный запрос. Отправить в работу на конвейер, где узлам за ваши "название полей" - пошлют куда подальше.