|
Связь таблиц по условию в запросе | ☑ | ||
---|---|---|---|---|
0
wade25
29.06.12
✎
13:54
|
Добрый день!
Соединяю две таблицы в запросе. Необходимо сделать так, что бы если в одной таблице поле было NULL то связть не создавалась. На ум приходит ток насоздавать вложенных с разными вариантами и связать их, как правильней сделать? |
|||
1
MaXpaT
29.06.12
✎
13:57
|
По (Таблица2.Поле1 Есть NULL) или ( Таблица1.Поле1 = Таблица2.Поле1 )
? |
|||
2
wade25
29.06.12
✎
13:58
|
(1) Сейчас попробую, спс
|
|||
3
m-serg74
29.06.12
✎
13:59
|
а так не вариант?
ВЫБОР КОГДА ТвоеПоле IS NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ |
|||
4
ssh2006
29.06.12
✎
14:09
|
(0) в условии соединения НЕ ТвоеПоле ЕСТЬ NULL
|
|||
5
wade25
29.06.12
✎
14:34
|
Не, вот есть 3 связи. Если в одной таблице поле NULL, то связь проходит по оставшимся 2ум..
|
|||
6
andrewks
29.06.12
✎
14:43
|
по ((т1.поле1=т2.поле1) или (т2.поле1 ЕСТЬ NULL)) (т1.поле2=т2.поле2) и (т1.поле3=т2.поле3)
|
|||
7
Lama12
29.06.12
✎
14:55
|
(0) Таблицы физические? Или это результаты подзапросов?
|
|||
8
wade25
29.06.12
✎
14:57
|
(7) Одна из вложенного запроса, другая виртуальная рег св срез
|
|||
9
wade25
29.06.12
✎
14:59
|
Так не пойдет, ну выбока проходит но оч много задвоенно, кароч на 3 связи 3 вложенных в дальнейшем с исключением по ним получается придется делать*(
|
|||
10
Lama12
29.06.12
✎
15:02
|
(8) Ну... я бы сделал как в (1) - Таблица2.Поле1 Есть NULL, только перед условием добавил НЕ.
Т.е. одно из условий связи таблиц - НЕ Таблица2.Поле1 Есть NULL. Если это будет одно условие, то получим перемножение значений таблиц с пропуском значений Null. |
|||
11
wade25
29.06.12
✎
15:04
|
Ну вот я сделал 3 вложенных. Если после самого нижнего приходит NULL тогда отбрасываем 1 связь и далее до того как останется 1 свзязь) Работает вроде быстро)
|
|||
12
Ненавижу 1С
гуру
29.06.12
✎
15:06
|
ПО ЕСТЬNULL(Т1.Поле1,Т2.Поле1)=Т2.Поле1
И ЕСТЬNULL(Т1.Поле2,Т2.Поле2)=Т2.Поле2 И ЕСТЬNULL(Т1.Поле3,Т2.Поле3)=Т2.Поле3 |
|||
13
wade25
29.06.12
✎
15:08
|
(12) Может быть, что в 1 таблице NULL а во второй не NULL и наоборот. Т.е. на NULL нужно проверять именно результат соединения
|
|||
14
Evrepid
29.06.12
✎
17:05
|
Я бы предложил вам сделать выборку из связываемых таблиц, в которых значения NULL заменить на что то определенного типа и уже по этим таблицам выполнять связь.
Думаю, что так можно решить вашу проблему. А связь со значениями определенного типа не проблема Не (Таблица1.Поле1 = &УстановленноеЗначение или Таблица2.Поле2 = &УстановленноеЗначение) и ДругоеУсловие |
|||
15
wade25
30.06.12
✎
12:43
|
(15) Та не, создал временную таблицу и из нее по условиям вытащил)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |