Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Select [D7, Access]


Jacks ©   (2007-04-25 17:12:00) 

Уважаемые мастера помогите пожалуйста. Вот таким запросом выбираю записи из таблици:
datamodule1.search_query.SQL.Add('Select zakaz.id, zakaz.data_zakaza, zakaz.klient, Stoimost.obshaya');
datamodule1.search_query.SQL.Add('From zakaz, Stoimost, zakaz_avtobus');
datamodule1.search_query.SQL.Add('Where (Stoimost.key=zakaz.id) and (zakaz_avtobus.№kuzova='''+skuzov.Text+''')');
datamodule1.search_query.Active:=true;

Он отбереает записи без проблем но в DBGrid мне выводит 5 записей обсолютно одинаковых хотя в базе она присутствует одна. Что делать?


Desdechado   (2007-04-25 17:56:00) [1]

> Ну так поля id и key и есть ключевые
А автобус без ключа зажигания заводится? И по 3-5 раз на один заказ?


zdm   (2007-04-25 17:41:00) [2]

... дойдем до маразма..., например
таблица  клиенты
код|название

таблица сотрудники_клиента
код|код_клиента|фио

select сотрудники_клиента.фио from клиенты, сотрудники_клиента
where сотрудники_клиента.код_клиента=клиенты.код


Jacks   (2007-04-25 17:39:00) [3]

Ну так поля id и key и есть ключевые


Desdechado   (2007-04-25 17:36:00) [4]

>  как в запросе указать связь таблиц
По ключевым полям, если таковые имеются. Если нет, завести.


Desdechado   (2007-04-25 17:35:00) [5]

> выводит 5 записей обсолютно одинаковых хотя в базе она присутствует одна
> нет там 5ти записей там их всего 3
Коньяк? Самогон? Почему в показаниях путаешься?
См. [2]. Если не понял, изучай теорию.


Jacks   (2007-04-25 17:32:00) [6]

Ну а можете подсказать как правьльно такой запрос составить, или как в запросе указать связь таблиц


Плохиш   (2007-04-25 17:31:00) [7]


> Jacks ©   (25.04.07 17:29) [6]

В твоём запросе все таблицы равнозначны и в [1] тебе даже научное название результата сказали...


Jacks   (2007-04-25 17:29:00) [8]

Так прикол в том что нет там 5ти записей там их всего 3. Делается выборка по полю из таблицы zakaz_avtobus. Блин я сам запутался. Вопшем мне надо выбрать поля из основной таблицы но выборка происходит по данным из связной таблицы


Reindeer Moss Eater   (2007-04-25 17:22:00) [9]

И хотелось бы узнать, что делает в этом запросе таблица zakaz_avtobus?

<Цитата>

Как что?
Умножает выборку на свои пять записей.


zdm   (2007-04-25 17:21:00) [10]

однозначно-нарушение логики реляции БД. Смотри внимательней таблицы и их "ключовку"


Плохиш   (2007-04-25 17:21:00) [11]

Значит в таблице Stoimost есть несколько записей с Stoimost.key=zakaz.id
И хотелось бы узнать, что делает в этом запросе таблица zakaz_avtobus?


Reindeer Moss Eater   (2007-04-25 17:19:00) [12]

Честно выводит то, что ты и попросил.
Декартово произведение таблиц.


Johnmen   (2007-04-25 17:19:00) [13]

Нет связывания таблицы zakaz_avtobus с остальными.


Наверх

Титульная страница Поиск, карта сайта Написать письмо