Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объединение таблиц по нескольким полям [D5, Access (ADO)]


Yurko ©   (2004-09-09 15:16:00) 

Есть таблица Aс полями F1и F2: Integer, и таблица Bс полями F1: Integerи F2: String.
Поля A. F1и A. F2есть ссылками на поле B. F2через B. F1.
Помогите составить запрос на выборку записей из Aно с соответствующими значениями B. F2.
Для одного поля делаю так:
SELECT B.F2
FROM A
INNER JOIN B ON (A.F1=B.F1)

Но как сделать тоже для A. F1и A. F2не знаю.
Помогите, пожалуйста!


sniknik   (2004-09-09 16:50:00) [1]

это совсем по другому
вот так
SELECT B.F2, C.F2
FROM (ATable AS A LEFT JOIN BTable AS B ON A.F1=B.F1) LEFT JOIN BTable AS C ON A.F2=C.F1


(left join здесь по моему лутше, уж пусть будет null если одного нет чем вся строка пропадет)


Yurko   (2004-09-09 16:22:00) [2]

...вот, что нужно.


Yurko   (2004-09-09 16:20:00) [3]

таблица B
F1  F2
1    str1
2    str2
3    str3
4    str4
5    str5

таблица A
F1  F2
2    5
1    1
4    1
3    5
2    2
5    3
......

результат выборки
str2    str5
str1    str1
str4    str1
str3    str5
str2    str2
str5    str3
......


sniknik   (2004-09-09 15:45:00) [4]

> А нужно все.
тогда OR
> Или Вы имели ввиду что-то другое?
нет именно это, но откуда же я знал что нужно все?

приведи пример данных, и образец нужной выборки, это будет проще.


Yurko   (2004-09-09 15:29:00) [5]

Если пишу
..........
INNER JOIN B ON (A.F1=B.F1)AND(A.F2=B.F1)
,
то получаю толькоте строки в которых A. F1и A. F2равны.
А нужно все.
Или Вы имели ввиду что-то другое?


sniknik   (2004-09-09 15:19:00) [6]

AND


Наверх

Титульная страница Поиск, карта сайта Написать письмо