Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Соединение двух таблиц по полю у которых могут быть значения null [D7]


Страницы:   1 2

McSimm2 ©   (2003-06-20 14:59:00) 

[Oracle]
Как связать две таблицы ??

select *
from table t1, table t2
where t1.field1 = t2.field1(+) and
t1.field2 = t2.field2(+)

Всё связывается, но если значение полей
t1.field2 ,t2.field2 is null, то связь не проходит....
как быть ?


McSimm2   (2003-06-20 15:25:00) [21]

>> это че? Oracle?
Вопрос читай внимательнее, тогда и поймёш чё это...

А по структуре, что ты хочешь в ней увидеть ???
Пусть будут :Две таблицы по четыре поля в каждой.
table1 (Улица, дом , кв-ра, поле1)
table2 (Улица, дом , кв-ра, поле2)
Результат:
Улица, дом , кв-ра, поле1,поле2(значение1)
Улица, дом , кв-ра, поле1,поле2(значение2)


Johnmen   (2003-06-20 15:23:00) [22]

Как это не "вяжутся" ??? Откинь квартиру - и повяжутся :)
where (t1.улица = t2.улица(+) and
t1.дом = t2.дом(+) and
t1.квартира = t2.квартира(+) and
(t1.квартира not null) and (t2.квартира not null)) or ...

Ну а ... сам сообразишь :)


Johnmen   (2003-06-20 15:23:00) [23]

Как это не "вяжутся" ??? Откинь квартиру - и повяжутся :)
where (t1.улица = t2.улица(+) and
t1.дом = t2.дом(+) and
t1.квартира = t2.квартира(+) and
(t1.квартира not null) and (t2.квартира)) or ...

Ну а ... сам сообразишь :)


Anatoly Podgoretsky   (2003-06-20 15:21:00) [24]

Johnmen © (20.06.03 15:05)
Хуже - это уже беспредел.


Соловьев   (2003-06-20 15:20:00) [25]

это че? Oracle?
и что в результате хотим? какая цель запроса?
и все-таки структуру БД хотелось бы глянуть...


McSimm2   (2003-06-20 15:17:00) [26]

select *
from table t1, table t2
where t1.улица = t2.улица(+) and
t1.дом = t2.дом(+) and
t1.квартира = t2.квартира(+)

У дома квартиры может не быть тогда два адреса не "вяжутся" ...


Соловьев   (2003-06-20 15:15:00) [27]

структуру таблиц в студию!


McSimm2   (2003-06-20 15:12:00) [28]

>> Соловьев © (20.06.03 15:09)
Это к тому, что значение поля очень да же может быть null и это стандартная ситуация и в данной ситуации нужно как то связывать эти таблицы


Johnmen   (2003-06-20 15:12:00) [29]

а причем здесь дом ?


Соловьев   (2003-06-20 15:09:00) [30]


> что связка по улице и дому,

а при чем здесь квартира?


McSimm2   (2003-06-20 15:07:00) [31]

Да ну... А если, допустим такая ситуация , что связка по улице и дому, а квартиры нет...


Johnmen   (2003-06-20 15:05:00) [32]

Чтобы что-то связать, надо иметь что-то, к чему привязаться.
Если null связывается с null, то что-то "Не то в консерватории", как говорит АП...:)


stone   (2003-06-20 15:02:00) [33]

если null может быть с двух сторон тогда full outer join


Mike1 Kouzmine1   (2003-06-20 15:01:00) [34]

or (isnull(f1) and isnull(f2))


stone   (2003-06-20 15:01:00) [35]

select *
from table t1 left outer join table t2
on t1.field1 = t2.field1 and t1.field2 = t2.field2


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо