Как соединить 3 таблицы SQL

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
Dryg
Сообщения: 2
Зарегистрирован: 21 окт 2008, 23:09

есть 3 таблицы SQL

1 была уже в базе 2 другие я создал!!

Вот как их соединить чтобы из таблиц 2 и 3 соединить с 1 таблицей


Таблицы с полями

1. DialogForm.qryOrdDate
ORDNO
CO_NAME
ORD_RESERVE
ORD_READY
ORD_INSTAL
ORD_PRICE
ORD_PAYMENT

2. ReportData.Table1
ADDRESSID
CONTRAGID
ADDRESSTYPEID
CITY
COUNTRY
ADDRESS
PERSONID
ISMAIN

3. ReportData.Table2
ORD_DATECREATE
ORD_DATEINSTALL
ORD_DATEMETR
ORD_FACTDATECREATE
ORD_FACTDATEINSTALL
ORD_FACTDATEMETR
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Не понятен термин "соединить".
Если имелось в виду объединение (Join), то Вы не указали,
по каким полям связаны таблицы между собой.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

полагаю что поля для связи надо таки добавить во вновь созданные таблицы. Без них нельзя ничего соединить ;)
Таб2 это некая расширенная инфа для заказа и там один-к-одному наверное связь (просто ORDNO добавить), по Таб1 добавить наверное RefOrdNo будет много-к-одному
Изображение
Dryg
Сообщения: 2
Зарегистрирован: 21 окт 2008, 23:09

короче!! в реале эти таблицы выглядят как 2! программа Optima WIN 6 там есть дизайнер отчетов!! программа работает под Вайлберт! и она делит их на три!! причем 1 и 3 таблица перется из одной поднозванием ORDERS а 2 это ADRESES !! в прогрпмме есть такая фигня типа создание SQL запроса!! мне нужно как то написать SQL запрос чтобы прога понимала что я их объеденяю только на этот отчет!! структура реальной базы не должна меняться!! DialogForm.qryOrdDate, ReportData.Table1 и ReportData.Table2 это как бы псевдоним в программе!! в реальной они выглядят как 2 всего!!!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Все это как-то очень туманно... И идет в разрез с принципами SQL.
Для объединения нужно указать условие, согласно которому одни записи одной таблицы связываются с другими записями другой таблицы... что-то типа:
ORDER.ORD_R_ADDR=ADDRESS.ADRESSID

Вы бы приложили бы какие-нибудь скриншоты, чтобы было понятно.
Я подозреваю, что то, что Вы называете таблицами, это какие-то визуальные компоненты, которые в генераторе отчетов предоставляют доступ к полям таблиц, на которых объединение данных уже выполнено. Т.е. прервичные и вторичнвые ключи в генераторе отчетов от вас скрыты....
Ответить