Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос с запросом [D7]


ice321i ©   (2007-11-13 09:55:00) 

Здравствуйте уважаемые мастера.

У меня проблемма с запросом. Ни как не могу додуматься как сделать.
Есть таблица salestable в ней присутвуют шесть ключей(nameid,famid,sfamid,o_nameid,o_famid,o_sfamid) 3 внешние таблицы (tname, tfam, tsfam). Смысл в чем, в таблицу salestable должны попадать имена, фамилии и отчество из этих таблиц, причем их получается 6 полей.
Пример:
фамилия|имя|отчество|фамилия1|имя1|отчество1

Соответсвенно формирую запрос:
select name,fam,sfam,name,fam,sfam from salestable,tname,tfam,tsfam where ((salestable.nameid=tname.id) and (salestable.famid=tfam.id) and
(salestable.sfamid=tsfam.id) and (salestable.o_nameid=tname.id) and (salestable.o_famid=tfam.id) and (salestable.o_sfamid=tsfam.id))

Не работает :(
Подскажите пожалуйста как написать правильный запрос ?


ice321i   (2007-11-13 11:05:00) [1]


> ЮЮ ©


Спасибо большое!!!
С алиасами все получилось :))))))))))


Anatoly Podgoretsky   (2007-11-13 10:59:00) [2]


> > Что значит подтягивались? У вас ФИО примари ключ? Так
> делать
> > нельзя, ФИО могут совпадать.
>
> При вводе в таблицы
> идет проверка на ввод повторных ФИО.

И что, убиваешь одного из двух, а кого из двух, если это разные люди?


ЮЮ   (2007-11-13 10:49:00) [3]

> При вводе в таблицы
> идет проверка на ввод повторных ФИО.

А при корректировке? Описки и очепятки так и будут жить вместе с правильными именами?


ice321i   (2007-11-13 10:47:00) [4]


> Sergey13 ©   (13.11.07 10:13) [5]
> > [3] ice321i   (13.11.07 10:10)
>
> Все поля в salestable заполнены?
>
> > Такую связь придумал не я, а препод
> ИМХО он дурак.
> <Цитата>


Полностью с тобой согласен! ;)


ice321i   (2007-11-13 10:44:00) [5]


> Рамиль ©  



> Что значит подтягивались? У вас ФИО примари ключ? Так делать
> нельзя, ФИО могут совпадать.

При вводе в таблицы
идет проверка на ввод повторных ФИО.


> ЮЮ ©


С алиасами сейчас попробую.


Рамиль   (2007-11-13 10:15:00) [6]

Что значит подтягивались? У вас ФИО примари ключ? Так делать нельзя, ФИО могут совпадать.


Sergey13   (2007-11-13 10:13:00) [7]

> [3] ice321i   (13.11.07 10:10)

Все поля в salestable заполнены?

> Такую связь придумал не я, а препод
ИМХО он дурак.


ЮЮ   (2007-11-13 10:12:00) [8]

> select name,fam,sfam,name,fam


> Не работает :(

Разве? А должен говорить, что "Ambigous ...", т.е. "Не могу сообразить какое 'name' тебе показать, если оно есть в двух таблицах.

Используй алиасы:
 select
    n1.name,f1.fam, sf1.asfam,
    n2.name,f2.fam, sf2.asfam
 FROM
   salestable s
   JOIN tname n1ON s.nameid = n1.id
   ...
   JOIN tname n2ON s.o_nameid = n2.id
   ...

Таблицы tname, tfam, tsfam пополняещь на основании решений Пленумов ВЦСПС? На кой вообще порождать сущности, не присутстствующие в предметной области? Или у тебя есть толования имен и фамилий в этих таблицах?


ice321i   (2007-11-13 10:10:00) [9]

СУБД interbase 6
А в таблице должны храниться ФИО заказчика и ФИО ответственного лица за заказ.
Такую связь придумал не я, а препод, он хочет что бы из этих трех таблиц (фамилия, имя, отчество) подтягивались ФИО в главную таблицу (salestable), вот как сделать запрос, что бы он выводил правильно ФИО  заказчика и ФИО ответственного лица ????


Anatoly Podgoretsky   (2007-11-13 10:06:00) [10]

> ice321i  (13.11.2007 09:55:00)  [0]

Перейди на явные соединения, но что то с постановкой не так.


Sergey13   (2007-11-13 10:03:00) [11]

> [0] ice321i   (13.11.07 09:55)
> Не работает :(

Может выходной? Или отпуск? Что пишет то? И кто пишет (в смысле СУБД какая)?

ЗЫ: И нафига вообще это надо - ФИО в справочнике? Сплошные Сидоровы-Ивановы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо