Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизОбъединение таблиц по нескольким полям Найти похожие ветки
← →
Yurko (2004-09-09 15:16) [0]Есть таблица 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 15:19) [1]AND
← →
Yurko (2004-09-09 15:29) [2]Если пишу
..........
,
INNER JOIN B ON (A.F1=B.F1)AND(A.F2=B.F1)
то получаю толькоте строки в которых A.F1 и A.F2 равны.
А нужно все.
Или Вы имели ввиду что-то другое?
← →
sniknik © (2004-09-09 15:45) [3]> А нужно все.
тогда OR
> Или Вы имели ввиду что-то другое?
нет именно это, но откуда же я знал что нужно все?
приведи пример данных, и образец нужной выборки, это будет проще.
← →
Yurko (2004-09-09 16:20) [4]таблица 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
......
← →
Yurko (2004-09-09 16:22) [5]...вот, что нужно.
← →
sniknik © (2004-09-09 16:50) [6]это совсем по другому
вот так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 если одного нет чем вся строка пропадет)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c