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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 20:26   #1
Glacius
 
Аватар для Glacius
 
Регистрация: 10.11.2010
Сообщений: 8
По умолчанию C++ Builder + Firebird 2.1, запрос SELECT для таблицы с рекурсивной связью.

Здравствуйте. Буду рад помощи в решении следующей проблемы.
В базе Firebird есть 2 таблицы - city и destination.

В таблице city находятся два поля
- id_city (уникальное поле);
- name (название города);

В таблице destination находятся четыре поля:
- id_dest (уникальное поле);
- fk_id_city1 (внешний ключ таблицы city);
- fk_id_city2 (внешний ключ таблицы city);
- dest (расстояние в км);

Каким образом нужно построить запрос SELECT, чтобы возвращалось название первого города, второго города и расстояния между ними? Т.е. к примеру:
SELECT <Название 1-го города по fk_id_city1>, <Название 2-го города по fk_id_city2>, <dest> FROM <Таблица>;
(Доступ к базе осуществляется по технологии dbExpress через TSQLConnection, запросы SELECT через SimpleDataSet, запросы INSERT INTO и UPDATE через TSQLQuery).
Заранее благодарен.
Glacius вне форума Ответить с цитированием
Старый 10.06.2012, 20:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
select
 c1.name,c2.name,dest
from destination 
join city c1 on c1.id_city=fk_id_city1
join city c2 on c2.id_city=fk_id_city2
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 20:51   #3
Glacius
 
Аватар для Glacius
 
Регистрация: 10.11.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
С потолка:
Код:
select
 c1.name,c2.name,dest
from destination 
join city c1 on c1.id_city=fk_id_city1
join city c2 on c2.id_city=fk_id_city2
Простите, не совсем понял что есть c1 и c2 в вашем примере.
Glacius вне форума Ответить с цитированием
Старый 10.06.2012, 21:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Соединения к таблице с именами городов
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 21:43   #5
Glacius
 
Аватар для Glacius
 
Регистрация: 10.11.2010
Сообщений: 8
По умолчанию

Ругается, не понимает C1.NAME. Надо было в детстве учить SQL...
Glacius вне форума Ответить с цитированием
Старый 10.06.2012, 21:58   #6
Glacius
 
Аватар для Glacius
 
Регистрация: 10.11.2010
Сообщений: 8
По умолчанию

Я протупил. Поле называлось CITY_NAME. Спасибо за совет. Тема закрыта.
Glacius вне форума Ответить с цитированием
Старый 10.06.2012, 22:06   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если помогло - пожалуйста
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос Select Morgusha SQL, базы данных 26 06.06.2012 14:07
Запрос для вывода таблицы в DBGrid BattlePingvin БД в Delphi 9 14.02.2012 13:29
Не могу получить запрос пароля для подключения к firebird toboom БД в Delphi 0 06.12.2011 16:21
sql запрос select Olegka_ БД в Delphi 11 27.03.2011 16:55
Ввод в форму фрагмента Excel-таблицы со связью Skolot Microsoft Office Access 4 06.04.2010 22:49