|
наверно, сложно...Как отфильтровать таблицу запросом по комбинации полей? | ☑ | ||
---|---|---|---|---|
0
КошерныйТролль
12.02.14
✎
19:33
|
Таблица1
Поле1|Поле2|Поле3|Поле4 Таблица2 Поле1|Поле2 Как соединить Таблица1 с Таблица2 по Поле1, Поле2 таким образом, чтобы получить результат соединения, в котором отсутствуют комбинации значений Поле1 и Поле2 Таблицы2? Т.е. надо фильтрануть Таблицу1, исключив из нее комбинации Таблица2... |
|||
1
ДенисЧ
12.02.14
✎
19:34
|
Левое соединение
где т2.Поле1 ЕСТЬ NULL и т2.Поле2 ЕСТЬ nULL |
|||
2
КошерныйТролль
12.02.14
✎
19:36
|
(1) в итоге ничего не отфильтруется
|
|||
3
КошерныйТролль
12.02.14
✎
19:40
|
(1) Пля, а ведь точно! Должно получиться, попробую.
|
|||
4
Torquader
12.02.14
✎
19:40
|
(2) Левое соединение по Поле1 и Поле2 сделал ?
|
|||
5
КошерныйТролль
12.02.14
✎
19:45
|
(4) Понял смысл. Рзультатом, наверно, будет таблица, строки которой не соединились по условию, то есть останется то, что нужно.
|
|||
6
КошерныйТролль
12.02.14
✎
20:21
|
(1) А-ха-ха! Не работает, результатом является то же самое, что и таблица1.
|
|||
7
КошерныйТролль
12.02.14
✎
20:24
|
То есть, ничего не соединяется, соответственно, в результирующую таблицу тупо копируются строки Таблица1
|
|||
8
КошерныйТролль
12.02.14
✎
20:27
|
Так, как советовали в (1), муйня полная :)
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10 Банки.Город КАК Город, Банки.КоррСчет, Банки.Телефоны ПОМЕСТИТЬ т1 ИЗ Справочник.Банки КАК Банки УПОРЯДОЧИТЬ ПО Город УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3 Банки.Город КАК Город, Банки.КоррСчет, Банки.Телефоны ПОМЕСТИТЬ т2 ИЗ Справочник.Банки КАК Банки УПОРЯДОЧИТЬ ПО Город УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ т1.Город КАК Город, т1.КоррСчет, т1.Телефоны ИЗ т1 КАК т1 ЛЕВОЕ СОЕДИНЕНИЕ т2 КАК т2 ПО (т2.Город ЕСТЬ NULL ) И (т2.КоррСчет ЕСТЬ NULL ) УПОРЯДОЧИТЬ ПО Город УБЫВ |
|||
9
Torquader
12.02.14
✎
20:31
|
Бл...!
Т1 КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ Т2 КАК Т2 ПО Т1.Город=Т2.Город И Т2.КоррСчет=Т1.КоррСчет ГДЕ Т2.Город ЕСТЬ NULL И Т2.КоррСчет ЕСТЬ NULL Скобки сам расставишь. |
|||
10
mistеr
12.02.14
✎
20:33
|
(8) Отличительный признак современного человека: материться он учится раньше, чем читать.
Тебе ж по-русски написали "ГДЕ", а не "ПО". |
|||
11
Torquader
12.02.14
✎
20:34
|
(10) Я ему в (4) написал, думал, что он поймёт.
|
|||
12
КошерныйТролль
12.02.14
✎
20:41
|
(9) точно так же пять минут назад выматерился и написал почти то же самое :)
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10 Банки.Город КАК Город, Банки.КоррСчет, Банки.Телефоны ПОМЕСТИТЬ т1 ИЗ Справочник.Банки КАК Банки УПОРЯДОЧИТЬ ПО Город УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 3 Банки.Город КАК Город, Банки.КоррСчет, Банки.Телефоны ПОМЕСТИТЬ т2 ИЗ Справочник.Банки КАК Банки УПОРЯДОЧИТЬ ПО Город УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ т1.Город КАК Город, т1.КоррСчет, т1.Телефоны ИЗ т1 КАК т1 ЛЕВОЕ СОЕДИНЕНИЕ т2 КАК т2 ПО (т2.Город = т1.Город) И (т2.КоррСчет = т1.КоррСчет) ГДЕ т2.Город ЕСТЬ NULL УПОРЯДОЧИТЬ ПО Город УБЫВ |
|||
13
КошерныйТролль
12.02.14
✎
20:43
|
(1) ЧЮВАК, иди учи левое соединение и не сбивай профиссионалов с толку!!!
|
|||
14
Torquader
12.02.14
✎
20:45
|
(13) Так заработало ?
По-мойму, вполне должно. (только КоррСчет добавь, а то действительно - результат будет "интересный") |
|||
15
Torquader
12.02.14
✎
20:46
|
Хотя, с другой стороны, там где Город=Null там и счёт тоже.
P.S. а в таблице поле со значением Null может быть ? В SQL-то это сплошь и рядом - при формировании временных таблиц про это забывать не надо. |
|||
16
КошерныйТролль
12.02.14
✎
20:47
|
(14) да, работает.
Там Город и Корсчет всегда будут NULL. Потому, конечно, можно второе условие для верности добавить :) |
|||
17
КошерныйТролль
12.02.14
✎
20:48
|
(15) NULL в реквизите справочника может быть только если глюк какой
|
|||
18
КошерныйТролль
12.02.14
✎
20:49
|
или если поле составного типа
|
|||
19
КошерныйТролль
12.02.14
✎
20:51
|
(14) спасибо за помощь :)
|
|||
20
КошерныйТролль
12.02.14
✎
20:53
|
(1) Чувак, прости, я не понял тебя.
Ты в ГДЕ советовал. А я подумал, что это условие соединения. |
|||
21
КошерныйТролль
12.02.14
✎
20:54
|
Вечер, можжечок набекрень
|
|||
22
m-serg74
12.02.14
✎
21:49
|
(20) сам не понял, а уже в (13) под...ебывать начал, не красиво...
|
|||
23
КошерныйТролль
12.02.14
✎
22:08
|
(22) да, не красиво, извинился. И ты меня прости.
|
|||
24
m-serg74
12.02.14
✎
22:09
|
(23) мне то не за что...
|
|||
25
КошерныйТролль
12.02.14
✎
22:10
|
(24) Все равно прости
|
|||
26
m-serg74
12.02.14
✎
22:15
|
(25) ну если это так важно, то без проблем... и это... удачи
|
|||
27
Torquader
12.02.14
✎
22:59
|
(17) Ты выбираешь из временной таблицы - кто тебя знает, как ты её потом "готовить" будешь - там могут и Null и вообще всё что угодно быть.
|
|||
28
Torquader
12.02.14
✎
23:00
|
(20) Тебе в (4) написали, почему нужно левое соединение делать.
Я, конечно, не телепат, то предполагал что что-то пойдёт не так. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |