powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / непонятки в запросе
14 сообщений из 14, страница 1 из 1
непонятки в запросе
    #32530222
LA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем. Такой вопрос: есть две таблицы, нужно выбрать записи из первой таблицы, которых нет во- второй. Вот запрос
Код: plaintext
1.
2.
3.
4.
5.
select Services.ID as ID,
           Services.Name as Name
from    Services,Spr_Discount
where Services.Actual= 1  and
           Services.ID<>Spr_Discount.ID_Service
В таблице Services на данный момент есть записи, а в таблице Spr_Discount нет записей. В результате запрос ничего не возвращает, а нужно чтобы возвращал все записи таблицы Services. Если в таблицу Spr_Discount добавить хоть одну запись, то запрос отрабатывает нормально. В чем проблема?
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530243
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:
Код: plaintext
1.
2.
3.
4.
5.
select Services.ID as ID,
           Services.Name as Name
from    Services,Spr_Discount
where not Spr_Discount.ID_Service is null and Services.Actual= 1  and
           Services.ID<>Spr_Discount.ID_Service
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530258
LA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовала...результат тот же!
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530287
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а EXISTS не помагает?
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530295
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот так попробуй:
Код: plaintext
1.
2.
3.
select Services.ID as ID,
           Services.Name as Name
from    Services
where Services.Actual= 1  and (select Spr_Discount.ID_Service from Spr_Discount where Spr_Discount.ID_Service = Services.id) is null
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530298
vl2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select Services.ID as ID,
Services.Name as Name
from Services
where Services.Actual=1 and NOT EXISTS ( SELECT id_service FROM Spr_Discount
WHERE Spr_Discount.ID_Service=Services.ID)
...
Рейтинг: 0 / 0
непонятки в запросе
    #32530306
LA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем! все работает!!!
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531614
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ, а помедленее вариант не могли придумать?
про лефт джойн никто не помнит?

пишем просто

from Services left join Spr_Discount on (Services.ID<>Spr_Discount.ID_Service)
where Services.Actual=1


и все тут!!! Вы меня шокируете если честно, столько гадать и выдать такой результат :((
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531687
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarWind
народ, а помедленее вариант не могли придумать?


Рекомендую сначала оттестировать на время вариант с NOT EXISTS и LEFT JOIN. А уже потом горячиться...
О результатах доложить!
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531697
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял,
а чем
Код: plaintext
1.
NOT EXISTS ( SELECT id_service FROM Spr_Discount
WHERE Spr_Discount.ID_Service=Services.ID)
быстрее чем мой
Код: plaintext
(select Spr_Discount.ID_Service from Spr_Discount where Spr_Discount.ID_Service = Services.id) is null
???
Если без флейма, ктонибудь может рассказать?
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531759
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c джойном прогнал, он не выдает результат нужный

по поводу времяни...
запрос который был предложен у меня исполнялся 4500, левый джойн 266
а вот несколько модифицированное то что предлагалось

Select *
from Techdata td
where id NOT in ( SELECT id_techdata FROM techrez tr)

выдает то что необходимо за 1093

все цифры в милисекундах
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531761
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, по поводу объемов Techdata 201044, techrez 328610
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531793
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слушай, уважаумый StarWind, а чем ты считал скорости исполнения запросов?
...
Рейтинг: 0 / 0
непонятки в запросе
    #32531831
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если что эксперт обо всем сообщает....
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / непонятки в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]