Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизГлючит 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c