C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

  ЗакрытаНовая тема
Чтение данных из четырех таблиц, Совсем запутался с этими JOIN'ами
Aptem
Отправлено: 08.09.2006, 19:33


Мастер участка

Группа: Участник
Сообщений: 349



Привет, всем.

Есть небольшое приложение, работающее с MS Access через ADO. Возникла трудность чтение данных из четырех таблиц с помощью операции соединения.

Вот таблицы:

1. goods
-------------
id_goods
name
price
quantity
----------------

2. transaction
----------------
id_transaction
amount
date
----------------

3. contractor
----------------
id_contractor
name
----------------

4. log
----------------
id_log
id_goods
id_contractor
date
----------------

Вообщем, необходимо получить запрос, которые выводит все записи таблицы log. Обычный запрос SELECET * FROM log Выводит id'шники, нужно чтобы выводились не id, а соответствующие им имена.

Пример:
Обычный запрос SELECET * FROM log выводит
1 15 33 12.12.2005, а нужно 1 телефон Иванов 12.12.2005.

Я разобрался как читать данные из двух таблиц, но с четырьмя наступает полный ступор. Помогите, пожалуйста, разобраться.

Спасибо за внимание.
AVC
Отправлено: 11.09.2006, 08:24


Ветеран

Группа: Модератор
Сообщений: 1583



transaction выпадает (не понятно как связана с logs)
Все "телефоны" по прежнему в goods, а конракторы в contractor?
Если да то можно так
Select
l.*
,g.name (price...)
,c.name
From
log l
,goods g
,contractor c
Where 1 =1
and g.id_goods = l.id_goods
and c.id_contractor = l.id_contractor
Aptem
Отправлено: 11.09.2006, 19:13


Мастер участка

Группа: Участник
Сообщений: 349



QUOTE (AVC @ 11.09.2006, 08:24)
transaction выпадает (не понятно как связана с logs)

Извиняюсь, ошибся в таблице log также есть id_transaction.


Все понял, мой косяк!

Оказывается запрос выводил пустые поля, потому что id в таблице log я забивал сам. А заранее не посмотрел, что таких id не существует. Вообщем, во всем разобрался. Спасибо за помощь.

Отредактировано Aptem — 11.09.2006, 19:13

Вернуться в Работа с базами данных в C++Builder
ЗакрытаНовая тема