Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

Глючит Select ПОМОГИТЕ ПЛИЗЗЗ!!!   Найти похожие ветки 

 
demon_god ©   (2004-01-05 14:17) [0]

Заранее извиняюсь за все глупости, что здес напишу, т.к. я только начинающий, однако надо очень и срочно, а ответа я не могу найти еще с прошлого года (полторы недели уже) :).

Итак, есть две таблицы paradox или dbase (и то и то пробовал). В каждой по три поля: Word - поле с данными, id1 и id2 - поля, в которых для первой таблицы id1 - номер строки записей в порядке их добавления (короче прост по порядку), id2 - номер строки из поля id2 для второй таблицы, которая джолжна соответствовать этой строке.
Во второй таблице все. естественно, наоборот (не самая лучшая организация и всеже...).

Задача простая - для одной из таблиц дается ключ, который ищется в ее поле Word и затем выбираются и возвращаются сопоставленные ему ключи из второй таблицы.

Я разместил на форме Query, DataSource и Database, прописал в последнем в свойстве Params PATH на локальную папку base в папке проекта и выбираю данные с помошью sql-запросов типа

select word from t1 where (id2=(select id2 from t2 where word ="МОЙ КЛЮЧ")) or (id1=(select id1 from t2 where word ="МОЙ КЛЮЧ"));

Такая OR-конструкция нужна для случая, когда мой ключ один из нескольких возможных (например когда я задаю key1t1 и должен получить keyNt2, но последнему сопоставлен не только key1t1, но и key2t1,key3t1).

Так вот, все это прекрасно работает кроме одного случая - когда ключем является что-то типа "еблматититьblin", не содержащееся ни в одной из таблиц. Тогда в качестве результата выдается не пустое значение, а какое-то произвольное (1-я, 8-я или любая другая запись). Почему так? И как с этм ороться?

Приношу всем извинения за все написанные глупости - я человек совсем начинающий, однако надо очень и срочно - с прошлого года ( :) ) найти ответа не могу.

Буду признателен также, если кто подскажет, где взять инфу по поводу приложений для локальных БД.

Всем заранее спасибо.


 
Desdechado ©   (2004-01-05 14:26) [1]

здесь не по локальным БД надо, а книжку по БД вообще почитать.
когда надо сопоставить 2 вида сущностей друг с другом (много-ко-многим) обычно используют 3 таблицы:
1. справочник первых сущностей (id1, название, проч. атрибуты)
2. справочник вторых сущностей (id2, название, проч. атрибуты)
3. таблица перекрестных ссылок - связей одних с другими (id1, id2)
тогда все select"ы строятся легко, нет дублирования данных и проч.
Так что, почитайте книжки, коллега. Особенно про нормализацию данных.



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

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-93632
Goida
2004-01-08 18:27
2004.01.29
Глюки


1-93478
Seldon
2004-01-08 22:26
2004.01.29
Где происходит Exception?


14-93667
Rouse_
2004-01-07 19:27
2004.01.29
В принципе для футболистов футбол - дело привычное. ;)


6-93619
TUser
2003-11-25 10:24
2004.01.29
WebBr


3-93344
Vemer
2004-01-03 17:24
2004.01.29
Триггер не ловит Null вроде