|
Помогите с SQL - запросом
|
|||
---|---|---|---|
#18+
Как показать те записи в таблице 1 которые отсутсвуют в таблице 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2002, 05:15 |
|
Помогите с SQL - запросом
|
|||
---|---|---|---|
#18+
По-моему так: SELECT * FROM <таблица1> WHERE <первичный ключ> <> ALL ( SELECT <тот же ключ в таблице2(скорее всего это foreign key)> FROM <таблица2> ); Или еще один вариант: SELECT * FROM <таблица1> WHERE NOT <первичный ключ> = ANY ( SELECT <тот же ключ в таблице2(скорее всего это foreign key)> FROM <таблица2> ); У меня такое ощущение, что второй вариант будет работать эффективнее, т.к. просмотр в нем будет вестись до первого попавшегося совпадения. А вообще в стандарте SQL есть такой вариант: SELECT <столбец1>, [<столбец2>] FROM <таблица1> EXCEPT SELECT <столбец1>, [<столбец2>] FROM <таблица2>; Это по-моему идеальный вариант, он точно будет работать в Oracle, но работает ли он в IB - я не знаю. Во всяком случае проверить недолго. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2002, 11:13 |
|
Помогите с SQL - запросом
|
|||
---|---|---|---|
#18+
SELECT * FROM OPLAT082001 LEFT OUTER JOIN OPLAT092001 ON (OPLAT082001.LCHET = OPLAT092001.LCHET) WHERE ( (OPLAT092001.LCHET IS NULL ) ) выбирает записи из таблицы OPLAT082001 по лицевым счетам которых нет в OPLAT092001 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2002, 22:32 |
|
|
start [/forum/topic.php?fid=40&msg=32020761&tid=1581296]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 399ms |
0 / 0 |