Текущий архив: 2007.06.24;
Скачать: CL | DM;
Вниз
Как составить запрос Найти похожие ветки
← →
O.O (2007-03-30 07:34) [0]Допустим есть таблица справочника Т1, в котором поле Field2 содержит номер записи из другой таблицы (номенклатур) Т2.
Ключевое поле у неё Field1, поле имени, которое мы хотим видеть в результирующем наборе - Field2
Составляем запрос:
SELECT T1.Field1, T1.Field2, T2.Field2 from T1
Join T2 on T1.Field2 = T2.Field1
А если в первой таблице не одно поле номером записи из таблицы Т2 а несколько из одной и той-же таблицы, как сделать запрос, чтоб видеть в одной строке результирующего набора расшифровку этих разных полей?
← →
Sergey13 © (2007-03-30 08:44) [1]> А если в первой таблице не одно поле номером записи из таблицы
> Т2 а несколько из одной и той-же таблицы, как сделать запрос,
> чтоб видеть в одной строке результирующего набора расшифровку
> этих разных полей?
Сделать несколько связей в запросе к одной и той же таблице, но по разным полям
SELECT T1.Field1, T1.Field2, T2.Field2 from T1
Join T2 T2_1 on T1.Field2 = T2.Field1
Join T2 T2_X on T1.Field_X = T2.Field1
← →
ЮЮ © (2007-03-30 08:54) [2]Использовать алиасы:
SELECT bt.*, ref1.Name Ref1Name, ref2.Name Ref2Name
FROM
BadTable bt
LEFT JOIN ReferenceTable ref1 ON bt.RefField1 = ref1.Id
LEFT JOIN ReferenceTable ref2 ON bt.RefField2 = ref2.Id
>SELECT T1.Field1, T1.Field2, T2.Field2 from T1
>Join T2 T2_1 on T1.Field2 = T2.Field1
>Join T2 T2_X on T1.Field_X = T2.Field1
В подчеркнуьых местах использовать алиасы.
З.Ы. Таблицы следует называть так, чтобы их имена не путались с сокращениями, применяемыми для имен алиасов :)
← →
O.O (2007-03-30 09:37) [3]Ругается, не даёт присоединить одну и ту-же таблицу по одному и тому-же полю 2 раза
← →
ЮЮ © (2007-03-30 09:41) [4]Приведи реальный текст запроса
← →
O.O (2007-03-30 09:50) [5]
> ЮЮ © (30.03.07 09:41) [4]
> Приведи реальный текст запроса
Дык и не могу составить :)
Опишу задачу:
Имеется таблица предприятий и таблица документов движения.
В таблице документов движения имеются 2 поля "Предприятие поставщик" и "Предприятие получатель". Оба этих поля - значение ключевого поля таблицы предприятий.
Нужно получить результирующую таблицу документов, с названиями обеих предприятий.
← →
Sergey13 © (2007-03-30 10:00) [6]> [5] O.O (30.03.07 09:50)
Так у тебя в голове что-то ругается при обдумывании запроса или конкретный текст при запуске выдает ошибки? Приведи текст, который выдает ошибки.
← →
O.O (2007-03-30 10:57) [7]
SELECT DOCS.*, FIRMA.NAME AS F_From, FIRMA.NAME AS F_To FROM DOCS
LEFT OUTER JOIN FIRMA ON DOCS.KOD_PARTNER_EXPORT = FIRMA.KOD
LEFT OUTER JOIN FIRMA ON DOCS.KOD_PARTNER_IMPORT = FIRMA.KOD
Ошибка 204
Abiguous field names between table Firma and Table Firma KOD
← →
Jan (2007-03-30 10:58) [8]
> LEFT OUTER JOIN FIRMA ON DOCS.KOD_PARTNER_EXPORT = FIRMA.
> KOD
> LEFT OUTER JOIN FIRMA ON DOCS.KOD_PARTNER_IMPORT = FIRMA.
> KOD
тебе про алиасы говорили?
← →
ЮЮ © (2007-03-30 11:07) [9]SELECT DOCS.*, exp.NAME AS F_From, imp.NAME AS F_To FROM DOCS
LEFT OUTER JOIN FIRMA exp ON DOCS.KOD_PARTNER_EXPORT = exp.KOD
LEFT OUTER JOIN FIRMA imp ON DOCS.KOD_PARTNER_IMPORT = imp.KOD
← →
O.O (2007-03-30 11:13) [10]Как предлагал Sergey13
SELECT DOCS.*, FIRMA.NAME AS F_From, FIRMA.NAME AS F_To
FROM DOCS
LEFT OUTER JOIN FIRMA F_1 ON DOCS.KOD_PARTNER_EXPORT = FIRMA.KOD
LEFT OUTER JOIN FIRMA F_2 ON DOCS.KOD_PARTNER_IMPORT = FIRMA.KOD
Тоже ошибка
Как предлагал ЮЮ - там 3 таблицы
← →
O.O (2007-03-30 11:15) [11]
> ЮЮ © (30.03.07 11:07) [9]
Вот как. Теперь понял. А сначала недопёрло до меня. Спасибо !
Страницы: 1 вся ветка
Текущий архив: 2007.06.24;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.027 c