Главная страница
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.012 c
6-93616
Dmitry The Wing
2003-11-24 10:44
2004.01.29
Как соединить модемом две машины? (дозвон, прием звонка)


1-93429
werr
2004-01-16 15:25
2004.01.29
Как перенести каталог?


14-93689
SH
2004-01-06 14:12
2004.01.29
Граббер картинок


3-93406
NailMan
2004-01-05 09:33
2004.01.29
База для Media Library видеоплеера


14-93630
Zeon
2004-01-02 02:00
2004.01.29
Воксельный редактор