Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.009 c
6-93611
stud
2003-11-24 11:51
2004.01.29
сеть под дос


1-93488
snake1977
2004-01-15 11:14
2004.01.29
TThread + TTimer


3-93390
pashtet
2003-12-30 14:13
2004.01.29
TtreeView


1-93453
pASkdua
2004-01-15 18:35
2004.01.29
Возможна ли печать <B>всего</B> содержимого SrcollBox?


1-93546
Сережа
2004-01-17 23:31
2004.01.29
Таймер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский