1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Delphi и Sql

Тема в разделе "Delphi - Базы данных", создана пользователем babreonok, 5 окт 2006.

Статус темы:
Закрыта.
  1. babreonok

    babreonok Гость

    Репутация:
    0
    Помогите ктонить! Я делаю выборку из 3-х таблиц базы данных с помощью следующего кода:
    [sql]dtm.Query.SQL.Text:='SELECT maintable.gosregznak,maintable.markaauto,'+
    'maintable.modelauto,maintable.identnum,maintable.type,maintable.kategory,'+
    'maintable.godvupusk,maintable.shassi,maintable.kuzov,maintable.color,'+
    'maintable.region,maintable.maxweight,maintable.emptyweight,'+
    'maintable.DateUcheota,'+
    'owner.sertnum,owner.family,owner.name,owner.Patronymic,owner.Direction,'+
    'owner.Town,owner.Street,owner.House,owner.Korpus,owner.Apartment,'+
    'owner.PasportSeriya,owner.PasportNum,motor.MotorNum,motor.Model,'+
    'motor.Power,motor.WorkWolum';
    dtm.Query.SQL.Add('FROM (maintable inner join owner on maintable.sertnum=owner.sertnum), (maintable inner join motor on maintable.motornum=motor.motornum)');
    dtm.Query.SQL.Add('WHERE ('+asMainFilter+')');
    dtm.Query.SQL.Add('order by maintable.gosregznak');
    dtm.Query.Open;[/sql].В этой базе бывает так, что одной записи в таблице owner может соответствовать несколько записей в таблицах maintable и motor. При выполнении этого кода я получаю 6 (шесть) экземпляров записи удовлетворяющей условию, 3 из которых не содержат ни какой информации в полях таблицы owner. Что делать, чтобы получать только 1 копию записей?
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Составить правильно SQL запрос .. судя по Вашим словам у Вас присутствует отношение один ко многим в таблицах owner с остальными ...

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

    babreonok Гость

    Репутация:
    0
    Barmutik, а можешь посоветоввать хорошее пособие по скюэлю?
     
  4. Barmutik

    Barmutik Гость

    Репутация:
    0
    Мммм.. у меня когда-то первая книга была .. Сборник задач для языка SQL... там сначла давался материал а после уже по нему шли задачи ...

    На текущий момент что-то более свежее врядли могу посоветовать.. возьмите любой справочник по ANSI SQL ...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей