powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос с кучей join
6 сообщений из 6, страница 1 из 1
запрос с кучей join
    #37443242
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Не пойму как написать запрос.
Есть таблица 1, таблица 2, таблица 3, таблица 4.

в таблицах 2,3,4 есть FK к таблице 1. (все ссылаются ан PK Таблицы 1)

Как можно составить запрос к таблице 1, с условиями из трех других таблиц
вариант
Код: plaintext
select * from t1,t2,t3,t4 where t2.name=...
не прокатит из-за структуры каряво составленной программы.
С помощью join не получается=(
...
Рейтинг: 0 / 0
запрос с кучей join
    #37443314
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAHEK1не получается=(сообщение об ошибке покажите.
...
Рейтинг: 0 / 0
запрос с кучей join
    #37443553
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select *
from tab1
inner join tab2 on tab1.PK = tab2.FK
inner join tab3 on tab1.PK = tab3.FK
inner join tab4 on tab1.PK = tab4.FK
where tab2.name = ...

Абсолютно равнозначен запросу вида

Код: plaintext
1.
2.
3.
4.
5.
6.
select *
from tab1, tab2, tab3, tab4
where tab1.PK = tab2.FK
  and tab1.PK = tab3.FK
  and tab1.PK = tab4.FK
  and tab2.name = ...
...
Рейтинг: 0 / 0
запрос с кучей join
    #37444931
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
select *
from tab1
inner join tab2 on tab1.PK = tab2.FK
inner join tab3 on tab1.PK = tab3.FK
inner join tab4 on tab1.PK = tab4.FK
where tab2.name = ...

Абсолютно равнозначен запросу вида

Код: plaintext
1.
2.
3.
4.
5.
6.
select *
from tab1, tab2, tab3, tab4
where tab1.PK = tab2.FK
  and tab1.PK = tab3.FK
  and tab1.PK = tab4.FK
  and tab2.name = ...

Да, но вот в чем проблема. В таблице 1 есть ещё одно поле. допустим id2 и относительно каждой таблицы оно разное(таблица 2 id2=2 таблица 3 id2 = 3 и т.д.). Т.е. если я делаю запрос со связкой с таблицей tab2 то я должен написать
Код: plaintext
where tab1.PK = tab2.FK AND tab2.id2 =  2 
А если я делаю join больше чем к 1 таблице получается как я понимаю коллизия, т.к. прописывается ... id2=2 AND id2=3 ...как это обойти с помощью чего или как лучше сделать данный вид таблицы?
спасибо
...
Рейтинг: 0 / 0
запрос с кучей join
    #37444932
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой ошибся вот такой
Код: plaintext
where tab1.PK = tab2.FK AND tab1.id2 =  2 
вместо
Код: plaintext
where tab1.PK = tab2.FK AND tab2.id2 =  2 
...
Рейтинг: 0 / 0
запрос с кучей join
    #37445512
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в чем проблема? Чем смущает много AND? Собственно, приведите пример запроса. В идеале, несколько строк из исходных таблиц и что должно получится в результате. Рассуждать "вообще" - бессмысленно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос с кучей join
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]