Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

А как упростить запрос   Найти похожие ветки 

 
AntiUser ©   (2006-09-28 21:25) [0]

незнаю, например через LEFT JOIN или еще как, но через LEFT JOIN у меня постоянно выскакивыет ошибка: "ORA-00904: "O"."ID": нeдoпycтимый идeнтификaтop" и всегда в разных местах, всмысле не всегда O.ID. А запрос такой (в  таком виде он работает):

SELECT e.surname,
      e.name,
      e.patronymic,
      j.smallname,
      j.salary,
      o.fullname,
      f.formation,
      Dw.Name,
      Ord.Onumber,
      Ord.Odate
 FROM employee e,
      otdel_job oj,
      otdel o,
      job j,
      formation f,
      formation_employee fe,
      Orders_dw od,
      Orders ord,
      Date_work dw
WHERE e.id = oj.emp_id
      and o.id = oj.otdel_id
      and j.id = oj.job_id
      and e.id = fe.emp_id
      and f.id = fe.form_id
      AND Ord.Id = Od.Orders_id
      AND e.Id = Od.Emp_id
      AND Dw.Id = Od.Dw_id
      AND e.id = 1

Всё сводится к тому, что бы получить данные по e.id = 1


 
vidiv ©   (2006-09-28 21:34) [1]

имхо разницы не будет, ибо оптимизатор всеравно должен привести запрос к такому виду :)


 
Johnmen ©   (2006-09-28 22:05) [2]


> AntiUser ©   (28.09.06 21:25)


Здесь у тебя обычный неявный JOIN.
Так зачем же тебе LEFT JOIN? И где собственно текст неработающего запроса? И как упрощение запроса связано со словом JOIN?


 
Petr V. Abramov ©   (2006-09-28 22:58) [3]

> Всё сводится к тому, что бы получить данные по e.id = 1
 а Вы получаете данные по e.id = 2 или результат запроса Вас по каким-то другим причинам не устраивает? "Что хотим в результате" и "что нам не нравится"? Тем более, что  с
otdel_job oj,
     otdel o,
     job j,
     formation f,
     formation_employee fe,
     Orders_dw od,
     Orders ord,
     Date_work dw
знакомы не все :)


 
AntiUser ©   (2006-09-29 05:14) [4]

Да нет, ребята, все нормально. Все работает. Просто думал, что можно упростить читаемость и/или уменьшить громоздскость, ну вместо 30 строк 10-15 не в ущерб читаемости.

Если нет, так нет. Вы уж извиняйте, если чего не так, не храмотные мы (еще) в этом вопросе, вот и вопрошаем дабы получить ответ вразумительный, кой и получен был в посте первом и осознан мной до конца был, ибо сказано было; "да не будет, тебе, разницы"...


 
evvcom ©   (2006-09-29 08:41) [5]

> или уменьшить громоздскость, ну вместо 30 строк 10-15

Угу. Можно.
select * ... :-)


 
Sergey13 ©   (2006-09-29 08:44) [6]

> [4] AntiUser ©   (29.09.06 05:14)
> Просто думал,
> что можно упростить читаемость и/или уменьшить громоздскость,
> ну вместо 30 строк 10-15 не в ущерб читаемости.

Легко.

SELECT e.surname, e.name,e.patronymic,j.smallname,j.salary,
      o.fullname,f.formation,Dw.Name,Ord.Onumber,Ord.Odate
 FROM employee e,otdel_job oj,otdel o,job j,formation f,
      formation_employee fe,Orders_dw od,Orders ord,Date_work dw
 WHERE e.id = oj.emp_id and o.id = oj.otdel_id and j.id = oj.job_id
     and e.id = fe.emp_id and f.id = fe.form_id AND Ord.Id = Od.Orders_id
     AND e.Id = Od.Emp_id AND Dw.Id = Od.Dw_id AND e.id = 1


8-)



Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
2-1159794490
Зацени
2006-10-02 17:08
2006.10.22
Задачка


9-1137509777
wow
2006-01-17 17:56
2006.10.22
Как правильно писать движёк


2-1160066923
Любитель мп3-шек
2006-10-05 20:48
2006.10.22
Проиграть мп3


4-1149174929
salexn
2006-06-01 19:15
2006.10.22
Измерить скорость чтения диска


2-1160119374
dima_kds
2006-10-06 11:22
2006.10.22
ADOQuery в DBF