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

Вниз

помогите с запросом   Найти похожие ветки 

 
snake1977   (2004-07-12 16:05) [0]

Здравствуйте!! подскажите ктонибудь, есть три таблицы, связаны один к одному, но у подчиненых таблиц может не быть записи связанной с главной таблицей. если делать запрос :

select t.*,p.*,r.* from table1 t, table2 p, table3 r
where p.idRec=t.id and r.idRec=t.id

то в результирующем запросе будут только те записи из таблицы table 1, для которых есть данные в таблицах, Table2 и Table3.
А как сделать запрос чтоб если в подчиненных таблицах нет записи , то запись выбиралась но в полях из подчиненой таблицы было бы пусто.


 
stud ©   (2004-07-12 16:07) [1]

outer join например.
select t.*,p.*,r.* from table1
left outer join table2 on (table1.id=table2.id)
left outer join table3 on (table1.id=table3.id)

where p.idRec=t.id and r.idRec=t.id


 
MORA   (2004-07-12 16:09) [2]

убери where


 
Соловьев ©   (2004-07-12 16:12) [3]


> убери where

cartesian product - говорит о чем-то? :)


 
Курдль ©   (2004-07-12 16:13) [4]


> есть три таблицы, связаны один к одному, но у подчиненых
> таблиц

Это нонсенс! Уж либо "один-к-одному", либо "начальники-подчиненные" :)


 
snake1977   (2004-07-12 16:27) [5]

>> еспешиали фо Курдль
если кто нибудь назовет такую связь один ко многим, то пусть первый кинет в меня камень :)


 
Johnmen ©   (2004-07-12 17:33) [6]

>snake1977   (12.07.04 16:27) [5]
>если кто нибудь назовет такую связь один ко многим, то пусть первый кинет в меня камень :)

Что молчишь ? Уже поймал ?

>есть три таблицы, связаны один к одному, но у подчиненых таблиц

Значит, 1-М. Но если они реально 1-1, спрашивается, зачем городить 3 табл. вместо 1 ?


 
Курдль ©   (2004-07-12 17:40) [7]


> Johnmen ©   (12.07.04 17:33) [6]
> Но если они реально 1-1, спрашивается, зачем
> городить 3 табл. вместо 1 ?

Есть вариант - если они INHERITANCE REFERENSED, но это так и называется.
Типа есть базовая сущность ДОКУМЕНТЫ с ПК ДОК_ИД.
А есть наследственные сущности: ПЛАТЕЖНЫЕ_ДОКУМЕНТЫ с тем же ДОК_ИД, и ДОГОВОРЫ все с тем же ДОК_ИД.


 
Johnmen ©   (2004-07-12 17:46) [8]

>Курдль ©   (12.07.04 17:40) [7]

Это понятно.
Вот автору зачем ?


 
Курдль ©   (2004-07-12 17:51) [9]


> Johnmen ©   (12.07.04 17:46) [8]
> Вот автору зачем ?

Можно было бы предположить, что именно за этим, если бы не: "
> А как сделать запрос чтоб если в подчиненных таблицах нет
> записи , то запись выбиралась но в полях из подчиненой таблицы
> было бы пусто.
"


 
snake1977   (2004-07-13 08:32) [10]

на сколько я понимаю связь один к одному и связь один ко многим совсем не подразумевает обязательное наличие в дочерней таблице записи. если один к одному то подчиненная запись должна быть единственной , если один ко многим то может быть множество записей. Хотя может уже и ввели другие понятия :)
но это все лирическое отступление :)
огромное спасибо stud © , ибо он сразу понял в чем заключается вопрос ибез всяких лирик, просто ответил :) (еспешиали фо Курдль, эх... демагогия великая весч ;) )


 
Курдль ©   (2004-07-13 09:41) [11]


> snake1977   (13.07.04 08:32) [10]

На будущее (наверняка Вы не последний раз на этом форуме, поэтому лучше говорить на одном языке).

Из "схемотехники" БД:

Виды связи "один-к-одному":

ENTITY_1 -o------------o- ENTITY_2  (обе не обязятельны)
ENTITY_1 -+------------+- ENTITY_2  (обе обязятельны)

Скорее всего это Ваш случай, когда сущность1 имеет внешний ключ от сущности2 и при этом запись в ней не обязятельно есть для любой записи сущности2:
ENTITY_1 -|>-о---------+- ENTITY_2  (зависимая связь DEPENDED)
ENTITY_1 -|)------------> ENTITY_2  (наследственная связь INHERITED. Физически реализуется так же, как и зависимая)


 
Курдль ©   (2004-07-13 09:44) [12]

прим. чтиать "внешний ключ", как "первичный ключ + внешний ключ"



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

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

Наверх





Память: 0.47 MB
Время: 0.032 c
14-1090576672
igosm
2004-07-23 13:57
2004.08.08
Как посмотреть ассемблерный код программы на Delphi?


1-1090434833
Случайно забежавший
2004-07-21 22:33
2004.08.08
Двоичный код


14-1090506373
DSKalugin
2004-07-22 18:26
2004.08.08
платформа .NET Стоит ли переходить?


14-1089707695
KosilkA
2004-07-13 12:34
2004.08.08
Вот же гадость! (portal.tetki.ru)


1-1090761907
KaLLeKa
2004-07-25 17:25
2004.08.08
Как перемещать визуальные компоненты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский