powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / где ошибка ? not exists
16 сообщений из 16, страница 1 из 1
где ошибка ? not exists
    #39737148
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет, извините если повторюсь уже создавал тему по exists. подскажите что не так в моем коде ? по факту у меня не должно вывести записей, если я ничего не путаю. Но по результату наоборот вывел все записи где есть CONNECT_IB
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND br.objectid=b.contractkind
)
and br.attrcode = 'CONNECT_IB'
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737150
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaне должно вывести записейна основании чего?

petrovichvanyaнаоборот вывел все записи где есть CONNECT_IBТы же само написало условие r.attrcode = 'CONNECT_IB'
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737155
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

на основании этого "not exists" и "bc.attrcode = "CONNECT_IB" должно было не вывести записи где есть CONNECT_IB

а это
Код: plsql
1.
and br.attrcode = 'CONNECT_IB'

написал для того, чтобы убедится, что записей будет 0
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737159
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaна основании этогоТебе рано писать сложные запросы.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737160
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaна основании этогоТебе рано писать сложные запросы.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737164
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, это не сложный, с exists еще опыта не было работы. выше я писал почему запрос должен был вывести 0 записи. Скажите где я ошибаюсь ?
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737165
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND br.objectid=b.contractkind -- replace with bc.objectid=b.contractkind
)
and br.attrcode = 'CONNECT_IB'



SY.
P.S. Надеюсь attrcode NOT NULL?
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737167
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaна основании этого "not exists" и "bc.attrcode = "CONNECT_IB" должно было не вывести записи где есть CONNECT_IBгде есть записи, подпадающие под условие, - не должно, а где нет записей - выводит.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737169
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

изменил, но результат тот же
attrcode все заполненные
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737180
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaSY,

изменил, но результат тот же
attrcode все заполненные
А оно точно присутствует в Brscontractattrs
Код: plsql
1.
bс.objectid=b.contractKIND


?
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737181
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,

Ты хочешь вывести данные по контрактам и их атрибутам для контрактов без атрибутов CONNECT_IB? Тогда:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where not exists (
SELECT * 
FROM Brscontractattrs bc 
WHERE bc.attrcode = 'CONNECT_IB'
AND bc.objectid = br.objectid
)
/



SY.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737185
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaElic, это не сложныйТогда тебе вообще нельзя писать запросы.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737188
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

спасибо, понял в чем проблема была
когда используем exists всегда нужно связывать одинаковые таблицы ?
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737189
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, а вы сразу с рождения профессионалам стали ?
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737190
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaа вы сразу с рождения профессионалам стали ?Ты - хочешь. Но так не бывает. А идти нужно маленькими шажками - от простого к сложному. Ты же навалил в одну кучу говна join-нов с exist-ами и ещё имеешь претензию полагать, что она могла бы работать.
...
Рейтинг: 0 / 0
где ошибка ? not exists
    #39737194
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaкогда используем exists всегда нужно связывать одинаковые таблицы ?

Связывать надо связанные (логикой запроса) таблицы. Есть атрибут контракта. Ты хочешь узнать есть ли у ЭТОГО контракта атрибуты CONNECT_IB. Естественно BC нужно связать по ЭТОМУ контракту.

SY.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / где ошибка ? not exists
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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