Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ramz
Зарегистрирован: 21.11.2001 Сообщения: 141
|
Добавлено: Пн Апр 22 2002 16:58 Заголовок сообщения: Как связать две таблицы в IB 6 ? |
|
|
Пожалуйста, помогите разобраться... Есть две таблицы: table1 -name_id (smallint) 3 2 1
table2 -name_id (smallint) -name(char 25) 1 qqq 2 www 3 eee Нужно создать из этих таблиц view: eee www qqq
Как мне связать эти таблицы, чтобы я мог на формe в Buildere отображать этот View ? Что нужно сделать с индексами (какие где подобавлять). Имеет ли смысл пользоваться IB Expert при создании этого View-ва ? Как сделать этот view доступным в Builder ? |
|
Вернуться к началу |
|
|
swordfish
Зарегистрирован: 07.05.2002 Сообщения: 100 Откуда: Наб. Челны
|
Добавлено: Вт Май 07 2002 14:08 Заголовок сообщения: Re: Как связать две таблицы в IB 6 ? |
|
|
Вопрос из области общего применения SQL. Не могу точно сказать про IB, но по общему правилу написания SQL запросов это будет так
SELECT t1.name_id, t2.name FROM table1 t1, table2 t2 WHERE t1.name_id=t2.name_id ORDER BY t1.name_id
IB как уже говорил не знаю, так, что сам разберешься, создание представления что-то в этом роде:
CREATE VIEW name AS [твое select-expression];
Если есть механизм управления синонимами. Добавь PUBLIC синоним для твоего VIEW, если есть такой механизм в ИБ (хотя сомневаюсь).
Вопрос по индексам решаеться просто: Если table1 - отсортированная таблица, то на нее индексы не нужны, если table2 имеет структуру примерно следующую
table2 name_id -name 1 qqq 1 www 1 eee 1 ццц 1 ууу 2 ккк 3 уке 3 ыва
То на нее индекс тоже не нужен, руководствуйся тем, что если в связанной таблице данные по столбцу надо прочитать за 40%, то индекс не нужен, если же данные не повторяющиеся или редко встречающиеся, то индекс облегчит жизнь. |
|
Вернуться к началу |
|
|
swordfish
Зарегистрирован: 07.05.2002 Сообщения: 100 Откуда: Наб. Челны
|
Добавлено: Ср Май 08 2002 22:48 Заголовок сообщения: Re: Как связать две таблицы в IB 6 ? |
|
|
А обыкновенное view как ты хочешь можно сделать так: SELECT t2.name FROM table1 t1, table2 t2 WHERE t1.name_id=t2.name_id ORDER BY t1.name_id
А вообще вопрос слишком простой. Учи SQL! |
|
Вернуться к началу |
|
|
|