Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / exists / 19 сообщений из 19, страница 1 из 1
06.09.2018, 13:13
    #39698982
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Добрый день, есть два запроса один not exists, второй exists, подскажите они одинаково отработают ?
Код: plsql
1.
2.
not exists (select * from bel
where code = 'connect')


Код: plsql
1.
2.
exists (select * from bel
where code <> 'connect')
...
Рейтинг: 0 / 0
06.09.2018, 13:22
    #39698990
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
SQL - это язык с претензией на близость обыкновенному:
"не существует законнекченных белок" vs "существуют незаконнекченные белки"
...
Рейтинг: 0 / 0
06.09.2018, 13:44
    #39699014
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
code not null?
...
Рейтинг: 0 / 0
06.09.2018, 13:56
    #39699026
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
SQL> ed
Wrote file afiedt.buf

  1  with bel(code) as (
  2  select ' ' from dual union all
  3  select '' from dual union all
  4  select ' ' from dual union all
  5  select 'connect' from dual)
  6  select * from dual where
  7  not exists (select * from bel
  8* where code = 'connect')
SQL> /

no rows selected

SQL> ed
Wrote file afiedt.buf

  1  with bel(code) as (
  2  select ' ' from dual union all
  3  select '' from dual union all
  4  select ' ' from dual union all
  5  select 'connect' from dual)
  6  select * from dual where
  7  exists (select * from bel
  8* where code <> 'connect')
SQL> /

D
-
X



.....
stax
...
Рейтинг: 0 / 0
06.09.2018, 14:06
    #39699043
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Stax, спасибо
...
Рейтинг: 0 / 0
06.09.2018, 14:27
    #39699066
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Код: plsql
1.
2.
not exists (select * from bel
where code = 'connect')


Не существует записей, у которых код равен 'connect'

Код: plsql
1.
2.
exists (select * from bel
where code <> 'connect')


Существуют записи, у которых код не равен 'connect'
...
Рейтинг: 0 / 0
07.09.2018, 10:35
    #39699396
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Добрый день
Код: plsql
1.
2.
3.
select * from brscontracts b
inner join brscontractattrs br on (b.contractid = br.objectid)
where exists (SELECT * FROM Brscontractattrs bc WHERE bc.attrcode = 'CONNECT_IB')


подскажите, почему у меня не работает запрос? по факту должны были вывестись все данные где
Код: plsql
1.
bc.attrcode = 'CONNECT_IB'


а вот фактический результат
...
Рейтинг: 0 / 0
07.09.2018, 10:37
    #39699401
mibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

Подзапрос что-нибудь возвращает?
Если убрать exists данные есть?
...
Рейтинг: 0 / 0
07.09.2018, 10:38
    #39699403
mibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Подзапрос никак не связан с основным запросом это нормально?
...
Рейтинг: 0 / 0
07.09.2018, 10:39
    #39699405
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

это вам так кажется. никто ничего не должен. запрос отработал ровно так, как вы его попросили: выведи мне всех у кого существует 'CONNECT_IB'.
В ваших требованиях нигде не звучит фраза, что существовать должно только это условие. Или другими словами: вы нигде не попросили о том, что для выбираемых записей НЕ ДОЛЖНО СУЩЕСТВОВАТЬ других состояний. Понимаете?
...
Рейтинг: 0 / 0
07.09.2018, 10:40
    #39699407
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
mibin, подскажите, а как связать под запрос с основным запросом?
...
Рейтинг: 0 / 0
07.09.2018, 10:43
    #39699411
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

ну или совсем простыми словами.
У Васи есть только яблоки. У Пети есть яблоки и груши. А у Наташи, есть не только яблоки и груши, но ещё и сливы. Вы просите тех ребят, у кого есть яблоки, отдать вам ВСЕ их фрукты.
А теперь удивляетесь, что Петя с Наташей вам дали груши и сливы...
...
Рейтинг: 0 / 0
07.09.2018, 10:44
    #39699413
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
неизвестно что Вам надо

опишите задачу
есть --> получить

зы

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



.....
stax
...
Рейтинг: 0 / 0
07.09.2018, 10:45
    #39699414
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanyamibin, подскажите, а как связать под запрос с основным запросом?для начала объясните, что же вам всё же нужно в итоговой выборке и на каких условиям. вы даже нам словами объяснить не можете этого. как же сервер-то вас должен понять...
...
Рейтинг: 0 / 0
07.09.2018, 10:47
    #39699416
mibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

Вот смысл запроса:
Взять таблицу brscontracts b и взять связанные с ней записи из таблицы brscontractattrs br и выдать результат если в таблице Brscontractattrs bc есть хотя бы одна запись где attrcode равен 'CONNECT_IB',
т.е. нет информации о том что Brscontractattrs хоть как-то связан с таблицами brscontracts b и brscontractattrs br.. запись есть, дай...записи нет...ну тогда не дай :)
А более конкретно можно будет ответить когда поймем что именно нужно и как таблицы связаны между собой.
...
Рейтинг: 0 / 0
07.09.2018, 10:48
    #39699417
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Щукина Аннаpetrovichvanya,

ну или совсем простыми словами.
У Васи есть только яблоки. У Пети есть яблоки и груши. А у Наташи, есть не только яблоки и груши, но ещё и сливы. Вы просите тех ребят, у кого есть яблоки, отдать вам ВСЕ их фрукты.
А теперь удивляетесь, что Петя с Наташей вам дали груши и сливы...
імхо
не то он просит

.....
stax
...
Рейтинг: 0 / 0
07.09.2018, 10:49
    #39699419
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Щукина Анна,

отобрать данные у которых attrcode = CONNECT_IB используя exists
...
Рейтинг: 0 / 0
07.09.2018, 10:57
    #39699425
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
petrovichvanya,

а если у этих данных есть не только этот код, но и другие коды тоже?
иначе - зачем EXISTS, если и обычный WHERE справился бы.
...
Рейтинг: 0 / 0
07.09.2018, 11:02
    #39699433
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
exists
Спасибо вам) я теперь разобрался как оно работает
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / exists / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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