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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2013, 18:51   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию Работа с ForeignKey - не разберусь

Доброго вечера!!!
Помогите разобраться с внешними ключами.
Есть таблица main, в которой есть свой id и другие поля типа client.
Я сделал с помощью программы Navicat FK_Client из таблицы clients.fio

В главной таблицы я вижу SELECT * FROM main
вижу в поле клиента id_clients, а я хочу видеть в главной таблице именно clients.fio, а не clients.id_client. Подскажите, какие настройки в DBGrid или в запросе, или во внешнем ключе нужно сделать?
iskurt вне форума Ответить с цитированием
Старый 18.07.2013, 19:39   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Код:
select m.*, c.fio from main m inner join clients c on m.id_client=c.id
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 18.07.2013, 20:02   #3
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
Код:
select m.*, c.fio from main m inner join clients c on m.id_client=c.id
Так, прошу уточнить. Вот что я написал:
Цитата:
SELECT main.*, clients.fio FROM main INNER JOIN clients ON main.client=clients.id_client
Выдает по прежнему ID

В Вашем запросе from main m, что такое m?
inner join clients c, что такое с?
Цитата:
SELECT main.*, clients.fio FROM main m INNER JOIN clients c ON m.client=c.id_client
- при таком раскладе выдает неизвестная таблица main.
В чем ошибка

Последний раз редактировалось iskurt; 18.07.2013 в 20:21.
iskurt вне форума Ответить с цитированием
Старый 18.07.2013, 20:28   #4
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Код:
SELECT main.*, clients.fio FROM main INNER JOIN clients ON main.client=clients.id_client
Блин, ну по сути ведь так же правильно???
Почему выдает в таблицу только номера ID из таблицы clients?

Может мне гдето нужно указывать FK_CLIENT, который был создан?

Последний раз редактировалось iskurt; 18.07.2013 в 20:37.
iskurt вне форума Ответить с цитированием
Старый 18.07.2013, 20:51   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для начала попробуйте такой запрос:
Код:
SELECT clients.fio FROM main INNER JOIN clients ON main.client=clients.id_client
Вы по прежнему видите ID ?!

А потом Вы укажите только те поля из из main, которые Вам нужны.
Это можно сделать как в запросе:
Код:
select main.ПОле1, main.Pole2, ... , lients.fio FROM main INNER JOIN clients ON main.client=clients.id_client
так и в DBGrid (в режиме редактирования формы двойной щелчок по DBGrid - откроется редактор полей. Вытащите в него нужные поля. Кстати, там же можно вытащить только нужные поля, поменять их порядок и даже дать им русские имена (будут видны в столбцах).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2013, 21:41   #6
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Странно, но у меня получилось сделать сл образом.
Я переопределил FK, а именно у меня внешние ключи не по ID, а именно по полю char(30) и в таблице сразу стали отображаться имена клиентов.

Я прошу прощения за то что помучал вас.
iskurt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ForeignKey в DBGrid iskurt БД в Delphi 1 12.07.2013 10:21
Никак не разберусь с html и php pol49 Общие вопросы Web 2 28.01.2013 21:19
не разберусь с макросом в excel tatianalug Microsoft Office Excel 0 18.02.2012 03:59
Не разберусь с CopyRect Николая Ленин Общие вопросы Delphi 5 30.05.2011 22:54
Никак не разберусь почему не работает.. CodeExpert Помощь студентам 11 21.12.2009 02:10