Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

Помогите правельно написать SQL запрос   Найти похожие ветки 

 
Ivanoff   (2008-07-14 18:45) [0]

Имею

Master: Tbl_1: Fld_A, Id_t2, Fld_1, Fld_2, ... Fld_8
Detail  : Tbl_2: Id_t2, Fld_A, Fld_1

Справочник - Tbl_3: IdFld, Fld_A

Fld_1 .. Fld_8 из обоих таблиц беруться из справочника

Пример:
Tbl_1
Fld_A |Fld_1| ... | Fld_8
 abc  |  1  |  1  |  2  
 aaa   |  1
 aax   |  3  |  1

Tbl_2
Fld_A |Fld_1
  A   | 1
  B   | 2
  C   | 3

должен получть:
Tbl_1.Fld_A|Tbl_2.Fld_A
   abc    |    A
   abc    |    A
   abc    |    B
   aaa    |    A
   aax    |    C
   aax    |    A

SELECT *
FROM Tbl_1 LEFT JOIN Tbl_2 ON Tbl_1.Id_t2 = Tbl_2.Id_t2
WHERE Tbl_2.Fld_1 = Tbl_1.Fld_1
 OR Tbl_2.Fld_1 = Tbl_1.Fld_2
 ...
 OR Tbl_2.Fld_1 = Tbl_1.Fld_8

кручусь вокруг да около пока вроде бы не выходит: если к примеру Tbl_2.Fld_1 повторяется 2 раза (v Tbl_1.Fld_1 i v Tbl_1.Fld_2) то я полукю в итоге толко один раз а надо оба


 
Ivanoff   (2008-07-14 20:42) [1]

Нашел один выход:

SELECT T1.*, T2.*
FROM T1 INNER JOIN T2 ON T1.F1 = T2.F1

UNION ALL

SELECT T1.*, T2.*
FROM T1 INNER JOIN T2 ON T1.F2 = T2.F1

UNION ALL

...

UNION ALL

SELECT T1.*, T2.*
FROM T1 INNER JOIN T2 ON T1.F8 = T2.F1


но както через "задний проход" хотябы потому что сам SELECT у меня несколько серьёзней (выборка из нескольких таблиц в 2-х разных БД) не хоцца его плодить 8 раз ...


 
Johnmen ©   (2008-07-14 21:23) [2]

FROM Tbl_1
 LEFT JOIN Tbl_2 ON Tbl_1.Id_t2 = Tbl_2.Id_t2
 LEFT JOIN Tbl_2 ON Tbl_1.Fld_2 = Tbl_2.Fld_1
 ...
 LEFT JOIN Tbl_2 ON Tbl_1.Fld_8 = Tbl_2.Fld_1



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.05 c
2-1232628723
charoey_mag
2009-01-22 15:52
2009.03.15
Получить имя NetBIOS


2-1233057509
mixmix
2009-01-27 14:58
2009.03.15
Установить курсор в TEdit


15-1231270757
KilkennyCat
2009-01-06 22:39
2009.03.15
Забавные часы


6-1200663723
sdram
2008-01-18 16:42
2009.03.15
Как отправить email ?


6-1200242916
Gbp
2008-01-13 19:48
2009.03.15
Странное поведени Post в TIdHTTP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский