Связывание двух таблиц

Тема в разделе "Delphi - Базы данных", создана пользователем Fine, 26 авг 2005.

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

    Fine Гость

    Добрый день !
    У меня есть две таблицы table1 (список поставщиков и получателей) и table2 (накладные).
    В table2 есть поля id_postavshik и id_poluchatel.
    Teпеть как составить SQL запрос, чтобы в Dbgrid-e вместо id_postavshik и id_poluchatel были соответствующие значения из table1.
    Если бы былo только одно поле - только id_postavshik или только id_poluchatel, то это легко делать:
    CODESELECT table1.*, table2.* FROM table1, table2 WHERE
    table2.id_postavshik=table1.id
    А если 2 поля, уже не могу
    Еще должен сказать, что использую TADOQuery , TDBGrid, TDataSource.
    Заранее спасибо, буду признателен
    Пока
    Наверх
     
  2. Barmutik

    Barmutik Гость

    Возможно я не верно понял Ваш вопрос, но что если попробовать так:

    Код (Text):
    SELECT * FROM Table1 T1, Table1 T2, Table2 TT WHERE
    TT.id_postavshik = T1.id and TT.id_poluchatel = T2.id
    Если что не так то объясните подробнее что Вам требуется ...
     
  3. Fine

    Fine Гость

    Видимо вот это и мне надо, помоему получится, попробую потом результаты скажу.
    Спасибо :unsure:
     
  4. Barmutik

    Barmutik Гость

    Всё может быть...
     
  5. Guest

    Guest Гость

    Пожалуйста помогите! :lol:
    Мне нужен сайт где можно скачать теорию по дельфи, где есть тема связывание таблиц. Уже час в нете сижу, а найти не могу. PLEase.выручите
     
  6. Barmutik

    Barmutik Гость

    Причём Дельфи к связыванию таблиц ?
     
  7. pashAkka

    pashAkka Гость

    Связывать две и более таблиц можно как в Делфи, так и средствами SQL.

    1. Для связи в Делфи в данном случае вам подойдет использование lookup-полей. Тут вы сможете указать по каким ключевым полям организовать связь и какое поле выдавать в качестве результата. Соотвественно, для каждого lookup-поля потребуется DataSet той таблицы, с которой связываете.

    2. Средсвами SQL это будет выглядеть так:

    Код (Text):
    Sybase Embedded SQL:

    SELECT
    nakl.Field1,
    postav.name,
    poluch.name
    FROM
    Table2 AS nakl
    LEFT OUTER JOIN Table1 AS postav ON
    postav.Id = nakl.id_postavshik
    LEFT OUTER JOIN Table1 AS poluch ON
    poluch.Id = nakl.id_poluchatel

    Transact SQL:
    SELECT
    nakl.Field1,
    postav.name,
    poluch.name
    FROM
    (Table2 AS nakl
    LEFT OUTER JOIN Table1 AS postav ON
    postav.Id = nakl.id_postavshik)
    LEFT OUTER JOIN Table1 AS poluch ON
    poluch.Id = nakl.id_poluchatel
     
  8. Barmutik

    Barmutik Гость

    В Дельфи это не более чем механизам отображения данных.. никакого отношения к связи полей он не имеет ...
     
Загрузка...
Статус темы:
Закрыта.

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