Форум: "Базы";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
ВнизПри объединении двух таблиц в запросе с одной надо выбрать все за Найти похожие ветки
← →
Sanich © (2005-07-13 15:54) [0]Такая проблема. БД - Firebird 1.0.
Кто знает, как при объдинении двух таблиц в запросе по ключу, сделать так, чтобы с одной таблицы выбрались еще и все записи, что не имеют совпадений по ключу со второй.
Буду очень благодарен за ответ.
← →
Johnmen © (2005-07-13 15:58) [1]См. документацию на SQL. В частности виды соединений (JOIN).
← →
Sanich © (2005-07-13 16:04) [2]Да смотрел я. В одной книге что-то написано про кнструкцию вида table1.key*=table2.key но в FireBird она не работает. А другой нету. Может знаете где взять можно?
← →
Desdechado © (2005-07-13 16:04) [3]точнее OUTER JOIN
← →
Johnmen © (2005-07-13 16:09) [4]>Может знаете где взять можно?
В Интернете.
← →
Sanich © (2005-07-13 16:51) [5]На форму ibase.ru дали ссылку на статью, в которой все очень хорошо написано. http://www.ibase.ru/devinfo/joins.htm
← →
msguns © (2005-07-13 17:24) [6]Вместо
From T1,T2 Where T1.ID=T2.ID
надо
From T1 Left Join T2 ON (T1.ID=T2.ID)
Если я правильно понял сабж
← →
Desdechado © (2005-07-13 17:39) [7][6]
нет, неверно, ибо JOIN - это INNER JOIN, а не OUTER JOIN
← →
Johnmen © (2005-07-13 17:42) [8]>Desdechado © (13.07.05 17:39) [7]
Нет, неверно, ибо там LEFT, а он, как известно, разновидность внешнего (OUTER ) соединения.
← →
Alex_Bredin © (2005-07-13 17:51) [9]
> Johnmen © (13.07.05 17:42) [8]
нет, неверно ))
по умолч -INNER
← →
Stakan © (2005-07-13 17:53) [10]Alex_Bredin © (13.07.05 17:51) [9]
Нет неверно,
если есть LEFT, значит это OUTER
← →
Johnmen © (2005-07-13 17:55) [11]>Stakan © (13.07.05 17:53) [10]
Совершенно верно.
← →
Desdechado © (2005-07-13 18:18) [12]Johnmen © (13.07.05 17:42) [8]
да, согласен
просто я на умолчания не полагаюсь, всегда пишу LEFT OUTER JOIN, тогда никаких разночтений
← →
evvcom © (2005-07-14 10:02) [13]
> просто я на умолчания не полагаюсь
Это не умолчания. LEFT, RIGHT, FULL JOIN - это все OUTER. А употребление OUTER только для наглядности. Вот если бы существовала конструкция LEFT INNER JOIN, тогда были бы умолчания, а так нет.
← →
Johnmen © (2005-07-14 10:08) [14]
[INNER] JOIN | {LEFT | RIGHT | FULL } [OUTER]} JOIN
вот и все дела...
← →
Desdechado © (2005-07-14 12:25) [15]2 evvcom
только не надо буквоедства
для меня, например, LEFT INNER JOIN звучит вполне естественно
и отсутствие ее в стандарте не отрицает возможности ее появления там
← →
ЮЮ © (2005-07-14 12:34) [16]>LEFT INNER JOIN звучит вполне естественно
и что такая комбинация LEFT + INNER для тебя означает?
← →
TAN_K (2005-07-14 13:58) [17]елала представление , запрос делать аналогично . Попробуй .
CREATE VIEW VW_LKART(
GODR,
MES,
DEN,
NOM_CEX,
NAIM18,
NAIM,
NAIM1,
NAIM2,
NAIM3,
NAIM4,
NAIM5,
NAIM6,
RODST,
VOINP,
PENS,
NAIM16,
DAT_UV,
MODEL,
NAIM17,
PRIM,
NAIM19,
KOD_CEX,
KOD_KAT,
KOD_PROF,
KOD_USL,
KOD_RAZR,
KOD_OBR,
KOD)
AS
select
LK.GODR,
LK.MES,
LK.DEN,
pod.nom_cex,
pod.naim,
kat.naim,
pro.naim1,
pro.naim2,
pro.naim3,
usl.naim,
raz.naim,
LK.RODST,
LK.VOINP,
LK.PENS,
RAB.naim,
LK.DAT_UV,
STA.model,
STA.naim,
lk.prim,
str1.naim,
LK.gragd,
LK.K_GORR,
LK.K_NASR,
LK.K_OBLR,
LK.K_RAIR,
LK.KOD
/* */
from LKART LK
left outer join NASP NAS on (LK.k_nasr = NAS.kod)
left outer join REGION REG on (LK.k_oblr = REG.kod)
left outer join RAION RAI on (LK.k_rair = RAI.kod)
left outer join STRANA STR on (LK.k_stranr = STR.kod)
left outer join REGION REG1 on (LK.kpr_obl = REG1.kod)
left outer join GOROD GOR1 on (LK.kpr_gor = GOR1.kod)
left outer join NASP NAS1 on (LK.kpr_nas = NAS1.kod)
left outer join RAION RAI1 on (LK.kpr_rai = RAI1.kod)
left outer join ULICA ULI1 on (LK.kpr_ul = ULI1.kod)
left outer join RAI_GOR RAG on (LK.k_raigor = RAG.kod)
left outer join REGION REG2 on (LK.k_oblpr = REG2.kod)
left outer join GOROD GOR2 on (LK.k_gorpr = GOR2.kod)
ж
← →
Johnmen © (2005-07-14 14:08) [18]>TAN_K (14.07.05 13:58) [17]
"Что это, Берримор?" (с) А.К.Дойл
Это реальный запрос из реальных таблиц реальной БД ?
Охренеть... :)))
← →
Desdechado © (2005-07-14 18:29) [19]2 ЮЮ
просто внутреннее объединение, которое парсится слева
2 Johnmen
ты посмотри на исходники Оракловских вьюх, тогда охреневай :))
например, на sys.all_constraints
← →
Johnmen © (2005-07-14 18:35) [20]>Desdechado © (14.07.05 18:29) [19]
Это зависит от чего хренею я, а от чего ты. :))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c