Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2007, 12:52   #1
Monoflextor
 
Регистрация: 27.04.2007
Сообщений: 7
По умолчанию Помогите с SQL запросом.

У меня такая пробема... есть 2 таблицы. В них есть одинаковые поля. Мне надо чтобы из одной таблицы вибирались только те значения, которых нет в другой.
....................вот мой код..............
SELECT Lgota.IDLg, Lgota.Nazv
FROM "D:\2\\Lgota.db" Lgota, "D:\2\\pro.db" Pro
WHERE Lgota.Nazv <> Pro.Lgots
................... у меня в первой таблице числа 1 и 2..... и во второй 1 2 3.... в результате этого запроса выводятся числа 2 3 1 3..... а надо 3!
Помогите чайнику!)
Monoflextor вне форума Ответить с цитированием
Старый 27.04.2007, 13:38   #2
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

SELECT IDLg, Nazv FROM "D:\2\\Lgota.db"
WHERE Nazv not in (SELECT Lgots FROM "D:\2\\Pro.db")
НЕ_АЙС вне форума Ответить с цитированием
Старый 27.04.2007, 13:58   #3
Monoflextor
 
Регистрация: 27.04.2007
Сообщений: 7
По умолчанию

Цитата:
Сообщение от НЕ_АЙС Посмотреть сообщение
SELECT IDLg, Nazv FROM "D:\2\\Lgota.db"
WHERE Nazv not in (SELECT Lgots FROM "D:\2\\Pro.db")
Хммм...... теперь выводится 1 2 2

Последний раз редактировалось Monoflextor; 27.04.2007 в 14:06.
Monoflextor вне форума Ответить с цитированием
Старый 27.04.2007, 14:49   #4
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

Хммм....специально создал две таблицы с таким же содержанием
Всё работает...
НЕ_АЙС вне форума Ответить с цитированием
Старый 27.04.2007, 16:21   #5
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

SELECT Lgots from "D:\2\\pro.db"
MINUS
SELECT Nazv from "D:\2\\Lgota.db"
У этого запроса есть один весьма существенный минус - он не будет работать, если в первой таблице меньше записей чем во второй, а в остальном все достаточно тривиально.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 27.04.2007, 16:51   #6
Monoflextor
 
Регистрация: 27.04.2007
Сообщений: 7
По умолчанию

Что-то у меня ни один способ не работает...
Monoflextor вне форума Ответить с цитированием
Старый 27.04.2007, 18:02   #7
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Ты на какой базе используешь эти запросы?
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 27.04.2007, 21:32   #8
Monoflextor
 
Регистрация: 27.04.2007
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Shuraken Посмотреть сообщение
Ты на какой базе используешь эти запросы?
Стандарные базы..... paradox!
Monoflextor вне форума Ответить с цитированием
Старый 28.04.2007, 02:04   #9
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

SELECT Pro.Lgots from "D:\2\\pro.db" Pro where
not (Pro.Lgots in (select Lgota.Nazv FROM "D:\2\\Lgota.db" Lgota))

Мдя. К сожалению, тот код что я описал раньше не тестировался на Paradox-е, он тестировался на другой базе. Вот этот код тебе скорее всего подойдет.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 28.04.2007, 08:49   #10
Monoflextor
 
Регистрация: 27.04.2007
Сообщений: 7
По умолчанию

Вроде что-то есть, но... в первый раз результат выводится нормальный, но когда меняется база Pro.db и я апять делаю запрос, то выводятся данные которые показывались в первый раз... может как-то нужно обновить запрос или еще что-то... подскажите если знаете... заранее спасибо.
......................мой код...................
form8.Query1.Active:=false;
form8.Query1.SQL.clear;
form8.Query1.SQL.Add('select Lgota.Nazv FROM "D:\2\\Lgota.db" Lgota where not (Lgota.Nazv in (SELECT Pro.Lgots from "D:\2\\pro.db" Pro))');
form8.Query1.Active:=true;
Monoflextor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с запросом Viper666 Microsoft Office Access 2 14.05.2008 22:35
Помогите с запросом Айвенго Microsoft Office Access 3 08.05.2008 09:07
Помогите с запросом Blackmore БД в Delphi 3 07.05.2008 01:18
SQL. Помогите с запросом. fluxion БД в Delphi 2 27.12.2007 08:01
помогите с запросом 9-11 БД в Delphi 4 20.11.2006 10:04