Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2010, 23:19   #1
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
Вопрос SQL запрос для IB

В IB есть несолько таблиц, в дочерней таблице KOMPOZI есть поля key_fam, key_im, key_otch ссылающиеся на таблицы Fam , Im, Otch.
Как сделать запрос, чтоб в DBGrid в полях вторичных ключей отображались соответственно не идентификаторы а фамилии, имена и отчества.
Изначально запрос IBQwery был
select * from KOMPOZI
пробовала -
select KEY_KOMPOZI, DATA_ROZH, DATA_SM, DATA_NACH_TV, VOZRAST, PR_PROIZV, KEY_FAM, KEY_IM, KEY_OTCH, KEY_OPERA, KEY_BALET, KEY_SIMF, FOTO from KOMPOZI, FAM WHERE FAM.Fam
= KOMPOZI.KEY_FAM

Выдаёт ошибку.

Помогите пожалуйста, как правильно составить запрос....
Лисичкина вне форума Ответить с цитированием
Старый 13.10.2010, 10:37   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Структуру таблиц KOMPOZI, FAM с описаниями полей положи сюда. По названиям полей трудно понять, что к чему.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 13.10.2010, 11:21   #3
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
По умолчанию

tbl KOMPOZI имеет поля KEY_KOMPOZI(PRIMARY KEY),DATA_ROZH(D),DATA_SM(D),DATA_N ACH_TV(D),VOZRAST(I),PR_PROIZV(VARC HAR),KEY_FAM(I),KEY_IM(I),KEY_OTCH( I),KEY_BALET(I),KEY_SIMF(I),KEY_OPE RA(I),FOTO(BLOB)
tbl FAM имеет поля
FAM(VARCHAR),KEY_FAM(PRIMARY KEY)

Спасибо за ответ.

Последний раз редактировалось Лисичкина; 13.10.2010 в 11:27.
Лисичкина вне форума Ответить с цитированием
Старый 13.10.2010, 11:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
select 
 k.*,m.Фамилия ,im.Имя,Otch.Отчество
from KOMPOZI k,
left join fam m on (k.key_fam=m.key_fam)
  left join IM on (im.key_im=k.key_im)
  left join Otch on (k.key_otch=Otch.key_otch)
I'm learning to live...

Последний раз редактировалось Stilet; 13.10.2010 в 11:45.
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 12:08   #5
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
По умолчанию

Stilet

Спасибо огромное. Попробую. О результате - напишу.
Лисичкина вне форума Ответить с цитированием
Старый 13.10.2010, 12:23   #6
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
По умолчанию

хочу уточнить( может я некорректно поставила вопрос), мне нужно изменить не названия Columns Key_fam на Фамилия, а чтоб в таблице KOMPOZI в полях key_fam отображался не номер, а - Петров, Иванов и т.д.
Лисичкина вне форума Ответить с цитированием
Старый 13.10.2010, 12:50   #7
BeJIuKuu_Hexo4yxa
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 96
По умолчанию

select KEY_KOMPOZI, DATA_ROZH, DATA_SM, DATA_NACH_TV, VOZRAST, PR_PROIZV, KEY_FAM, KEY_IM, KEY_OTCH, KEY_OPERA, KEY_BALET, KEY_SIMF, FOTO, FAM.Fam
from KOMPOZI, FAM
WHERE FAM.KEY_Fam = KOMPOZI.KEY_FAM

KEY_FAM - ключевое поле, в нем всегда будут коды (номера), а фамилии отображаются в поле FAM.Fam.
Аналогично и имена с отчествами подцепи (в описании нет имен полей)
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
BeJIuKuu_Hexo4yxa вне форума Ответить с цитированием
Старый 13.10.2010, 13:44   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
мне нужно изменить не названия Columns
А кто сказал что мой пример названия колонок меняет?
Он присоединяет данные о ФИО по ключевым полям. Тебе же это нужно? Вместо кодов - имена и фамилии.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 18:14   #9
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
По умолчанию

Stilet, я попробовала запрос - пишет ошибку(((
Всё равно - спасибо большое, может я что не так делала.

BeJIuKuu_Hexo4yxa, спасибо! Исходила из вашего совета, но сделала несколько по другому.

Огромное всем спасибо за участие и помощь, я решила вопрос, в таблице KOMPZI через запрос обозначила поля FAM, IM, Otch вместо полей Key_fam и тд. Не заню, может это по дилетантски, но всё работает.

select KEY_KOMPOZI, DATA_ROZH, DATA_SM, DATA_NACH_TV, VOZRAST, PR_PROIZV, FAM, IM, OTCH, KEY_OPERA, KEY_BALET, KEY_SIMF, FOTO from KOMPOZI, FAM,IM,OTCH WHERE FAM. KEY_FAM= KOMPOZI.KEY_FAM and IM. KEY_IM= KOMPOZI.KEY_IM and OTCH. KEY_OTCH= KOMPOZI.KEY_OTCH

Ещё раз всем спасибо большое.

Последний раз редактировалось Лисичкина; 13.10.2010 в 23:33.
Лисичкина вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос в MYSQL для интервала дат slips SQL, базы данных 7 05.06.2010 21:41
SQL запрос для строк! Milishka БД в Delphi 8 21.04.2010 13:23
НАдо сделать запрос на SQL для MS Access! Artanis SQL, базы данных 9 05.11.2009 15:03
SQL запрос для поиска в связаных таблицах. Хитрец БД в Delphi 12 18.04.2009 14:46
SQL-запрос для приложенией клиент-сервер kiber0net0 БД в Delphi 3 27.09.2008 18:30