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

  • Автор темы Fine
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

Fine

#1
Добрый день !
У меня есть две таблицы 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.
Заранее спасибо, буду признателен
Пока
Наверх
 
B

Barmutik

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

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

Fine

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

Guest

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

pashAkka

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

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

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

Код:
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
 
B

Barmutik

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