
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.05.2006, 12:12
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
У меня есть две таблицы с одинаковыми полями: 1 таблица Код: plaintext Код: plaintext 1. Возможно ли построить запрос, в котором остались записи из 1 таблицы и отсеклись записи, совпадающие со второй таблицей??? Схематично на рисунке то, что осталось красным цветом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 12:20
|
|||
|---|---|---|---|
SELECT-SQL |
|||
|
#18+
Я так полагаю что предикат ...WHERE ... NOT IN (SELECT ... FROM Tabl1) команды SELECT-SQL вам поможет. Точнее не могу, не понял по какому критерию сравнивать записи из разных таблиц. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 12:28
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Извиняюсь, немного не до конца рассказал. Сравнивать записи по YEAR, QUART, ID_TERR, ID_INDIC а отличается значение VAL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 12:40
|
|||
|---|---|---|---|
SELECT-SQL |
|||
|
#18+
Опять не понял. Сравнивать по YEAR, QUART, ID_TERR, ID_INDIC это понятно, а вот при чем тут "отличается значение VAL" ? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 12:54
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Aleksey-KОпять не понял. Сравнивать по YEAR, QUART, ID_TERR, ID_INDIC это понятно, а вот при чем тут "отличается значение VAL" ? С уважением, АлексейИзвиняюсь. Неправильно выразился. Критерием является равенство всех полей. Имеются две таблицы, но записи в них могу совпадать, а могут и нет. Мне надо найти записи в табл.1, которые несовпадают с табл.2 Aleksey-K...Я так полагаю что предикат ...WHERE ... NOT IN (SELECT ... FROM Tabl1) команды SELECT-SQL вам поможет...Я понимаю, что именно этот предикат. Но как построить, не могу сообразить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:07
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Владимир СА Aleksey-KОпять не понял. Сравнивать по YEAR, QUART, ID_TERR, ID_INDIC это понятно, а вот при чем тут "отличается значение VAL" ? С уважением, АлексейИзвиняюсь. Неправильно выразился. Критерием является равенство всех полей. Имеются две таблицы, но записи в них могу совпадать, а могут и нет. Мне надо найти записи в табл.1, которые несовпадают с табл.2 Aleksey-K...Я так полагаю что предикат ...WHERE ... NOT IN (SELECT ... FROM Tabl1) команды SELECT-SQL вам поможет...Я понимаю, что именно этот предикат. Но как построить, не могу сообразить. Select * from tabl1 where (str(Year)+str(quart)+str(id_terr)+str(id_indic)+str(val)) not in ( select (str(Year)+str(quart)+str(id_terr)+str(id_indic)+str(val)) as cnt from table2) into cursor query nofilter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:17
|
|||
|---|---|---|---|
SELECT-SQL |
|||
|
#18+
Вот теперь все ясно: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:23
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Станислав C.Select * from tabl1 where (str(Year)+str(quart)+str(id_terr)+str(id_indic)+str(val)) not in ( select (str(Year)+str(quart)+str(id_terr)+str(id_indic)+str(val)) as cnt from table2) into cursor query nofilterСпасибо, то что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:30
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Aleksey-KВот теперь все ясно: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:42
|
|||
|---|---|---|---|
SELECT-SQL |
|||
|
#18+
Я бы exists не доверял. Не факт что быстро работает. Мой вариант аутер джойн: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 13:57
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
CripЯ бы exists не доверял. Не факт что быстро работает. Мой вариант аутер джойн: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 14:02
|
|||
|---|---|---|---|
SELECT-SQL |
|||
|
#18+
Можно почитать хелп по OUTER JOINам. Left join делает операцию аналогичную простому соединению, но при этом выбирает все записи из 1-й таблице. Записи 2-й таблицы не удовлетворяющие условию соединения становятся равными NULL. Я тут не совсем правильно написал. Достаточно было просто Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2006, 14:03
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
CripМожно почитать хелп по OUTER JOINам. Left join делает операцию аналогичную простому соединению, но при этом выбирает все записи из 1-й таблице. Записи 2-й таблицы не удовлетворяющие условию соединения становятся равными NULL. Я тут не совсем правильно написал. Достаточно было просто Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2006, 02:48
|
|||
|---|---|---|---|
|
|||
SELECT-SQL |
|||
|
#18+
Hi Crip! Насчёт скорости - это зависит от версии фокса. В свежих exists работает весьма шустро (это кстати довольно легко проверить). Насчёт твоего варианта - увы, но он годится лишь для свежих версий фокса (где и производительность exists на высоте). В VFP6 и 7 такого типа запросы работают некорректно (про более древние версии не скажу), причём в VFP7 есть ещё зависимость от наличия индекса по "проверяемому" полю. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1591674]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 386ms |

| 0 / 0 |
