Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
15-1159381074
Nic
2006-09-27 22:17
2006.10.22
Работа с оборудованием через com-порт


2-1159968384
Виктория
2006-10-04 17:26
2006.10.22
TMemo


2-1159821357
dan8
2006-10-03 00:35
2006.10.22
Запрос с датой


2-1160377908
pavel_guzhanov
2006-10-09 11:11
2006.10.22
Создание директории на удаленном компьютере


3-1156510745
PEAKTOP
2006-08-25 16:59
2006.10.22
EXECUTE BLOCK





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский