Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
14-1090196528
Soft
2004-07-19 04:22
2004.08.08
Дао Программирования!!!


14-1090726590
Gero
2004-07-25 07:36
2004.08.08
Вопрос по HTML: реалистичная тень


6-1086713111
Dubensky
2004-06-08 20:45
2004.08.08
Привет всем. Подскажите как по сети динуть файл, если нету шар?


1-1090684174
Mental_Ray
2004-07-24 19:49
2004.08.08
Тупой вопрос: как перевести байты в Кб, Мб? :)


14-1090306595
zuk
2004-07-20 10:56
2004.08.08
Горячие клавиши в винде.