[FB] problem z podzapytaniem NOT IN
MT - 14-02-2006 09:37
[FB] problem z podzapytaniem NOT IN
Witam!
Mam dwie tabele: firmy i sprawy. pola id_firmy w tabeli firmy oraz pola id_dluznika oraz id_zleceniodawcy w tabeli sprawy sa typu integer.
Problem:
Ponizsze zapytanie dziala poprawnie
select id_firmy from firmy where id_firmy not in (select id_dluznika from sprawy)
a ponizsze w wyniku nic nie daje
select id_firmy from firmy where id_firmy not in (select id_zleceniodawcy from sprawy)
Zapewniam z gory, ze w tabeli jest kilkaset rekordow, ktore spelniaja warunek tego zapytania.
Czy ktos sie spotkal juz z tym problemem i wie jak go rozwiazac?
Dodam, ze baza to FB 1.5.2 a zapytania wprowadzam w iboconsole
Pozdrawiam Niktor
Morff - 15-02-2006 09:43
Dnia 14-02-2006 o 06:47:50 MT <niktor@nie_spam_tlen.pl> napisał:
> Ponizsze zapytanie dziala poprawnie > > select id_firmy from firmy where id_firmy not in (select id_dluznika from > sprawy) > > a ponizsze w wyniku nic nie daje > > select id_firmy from firmy where id_firmy not in (select id_zleceniodawcy > from sprawy) > > Zapewniam z gory, ze w tabeli jest kilkaset rekordow, ktore spelniaja > warunek tego zapytania. > > Czy ktos sie spotkal juz z tym problemem i wie jak go rozwiazac?
Sprawdź jakiego typu są pola . Czy czasami nie masz tak ze id_firmy jest varchar a id_zleceniodawcy integer ? .. sprawdź - jezeli tak to moze CAST cie uratuje.
-- Pozdrawiam Morff ---------------------- AQQ 141151 Powered by Opera/M2
szaman - 16-02-2006 10:05
FB nie znam i znać nie już nie chcę, ale ... takie zapytanie nawet jeżeli ci zadziała to jest bardzo nieefektywne (i nie zależnie od rodzaju serwera).
Tego typu zapytania załatwia się raczej outer joinem Dla przykladu lista zywych klientów ;-) to zapytanie
SELECT KLIENCI.NAZWISKO FROM KLIENCI LEFT OUTER JOIN KOSTNICA ON PACJENT.ID = KOSTNICA.ID_PACJENTA WHERE KOSTNICA.ID_PACJENTA) Is Null
PS. Ta uwaga co do efektywności już nie tak bardzo dotyczy kwalifikatora IN, który daje dużo efektywniejsze zapytania. -- -- {67B14976-ABB4-4A3B-869B-84B5CCA1F569}
szaman - 16-02-2006 10:05
SELECT KLIENCI.NAZWISKO FROM KLIENCI LEFT OUTER JOIN KOSTNICA ON KLIENCI.ID = KOSTNICA.ID_PACJENTA WHERE KOSTNICA.ID_PACJENTA IS NULL
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|