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

Вниз

Вопрос с запросом   Найти похожие ветки 

 
ice321i   (2007-11-13 09:55) [0]

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

У меня проблемма с запросом. Ни как не могу додуматься как сделать.
Есть таблица 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))

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


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

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

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

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


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

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

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


 
ice321i   (2007-11-13 10:10) [3]

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


 
ЮЮ ©   (2007-11-13 10:12) [4]

> 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 n1 ON s.nameid = n1.id
   ...
   JOIN tname n2 ON s.o_nameid = n2.id
   ...

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


 
Sergey13 ©   (2007-11-13 10:13) [5]

> [3] ice321i   (13.11.07 10:10)

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

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


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

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


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


> Рамиль ©  



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

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


> ЮЮ ©


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


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


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


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


 
ЮЮ ©   (2007-11-13 10:49) [9]

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

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


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


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

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


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


> ЮЮ ©


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



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

Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
15-1194763377
Томс
2007-11-11 09:42
2007.12.09
2-е высшее


11-1179405378
danger
2007-05-17 16:36
2007.12.09
Компонент TKOLHTTPDownload


4-1179894213
Klopan
2007-05-23 08:23
2007.12.09
Включение флешки


3-1186049899
DmitrichJ
2007-08-02 14:18
2007.12.09
UpDate. Как изменить одну запись, если их несколько одинаковых?


1-1190102028
Darvin
2007-09-18 11:53
2007.12.09
Посоветуйте, как реализовать





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский