ďťż
 
=?ISO-8859-2?Q?[Postgres]_Not_in_czy_jest_co=B6_takiego_=3F?= ďťż
 
=?ISO-8859-2?Q?[Postgres]_Not_in_czy_jest_co=B6_takiego_=3F?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?ISO-8859-2?Q?[Postgres]_Not_in_czy_jest_co=B6_takiego_=3F?=



Marcin Balawejder - 21-03-2006 01:00
=?ISO-8859-2?Q?[Postgres]_Not_in_czy_jest_co=B6_takiego_=3F?=
  Tabela zawiera elementy drzewa kategorii w sklepie internetowym
id_category,
id_root, - identyfikator kategorii nadrzędnej..
category_name

Chcę wyciągnąć wszystkie liście czyli te kategorie, które są na najniższym
poziomie tzn. takie, które nie są rodzicami dla żadnej kategorii.

Piszę sobie selecta :

SELECT
id_category,
id_root,
category_name
FROM
category cat
WHERE
id_category not in (select id_root from category group by id_root)
ORDER BY
id_category

ale dlaczego mi nic nie zwraca ?
ani jednego rekordu...
coś nie tak z 'not in' ?

:)

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





Piotr 'piter' Hlawski - 21-03-2006 01:00

  Marcin Balawejder wrote:

> [Postgres] Not in czy jest coś takiego ?

Oczywiście, że jest :)

[...]

> ale dlaczego mi nic nie zwraca ?
> ani jednego rekordu...
> coś nie tak z 'not in' ?

NOT IN działa na bank tak jak można się tego spodziewać, pytanie tylko co
tak naprawdę zwraca ci podzapytanie - podaj więcej danych, bo moja szklana
kula ma dzisiaj wolne ;)

--
..:: Piter // phlawski$gmail,com // gg: 4534287 ::.
Wielki Mór Chiński powstał by powstrzymać Chucka Norrisa. Nie udało mu się.




Marcin Balawejder - 21-03-2006 01:00
=?ISO-8859-2?Q?Re:_[Postgres]_Not_in_czy_jest_co=B6_takiego_=3F?=
  Piotr 'piter' Hlawski <phlawski@cut_this_crap.gmail.com> napisał(a):

>
> NOT IN działa na bank tak jak można się tego spodziewać, pytanie tylko co
> tak naprawdę zwraca ci podzapytanie - podaj więcej danych, bo moja szklana
> kula ma dzisiaj wolne ;)
>

No dobra, sam tego nie mogę pojąć :)
Bo właśnie nic mi nie zwraca :)

www.mbbc.pl/priv/category.sql

natomiast gdy wrzucę w WHERE

id_category not in (select id_root from category where id_root <> null group
by id_root)

zwraca mi, ale nie to co trzeba..

albo mi się mózg zlansował dzisiaj, albo coś nie tak z postgresem 7.4.7 :)

A w ogóle to pozdrawiam :)
wejder

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Grzegorz Danowski - 21-03-2006 01:00
=?iso-8859-2?Q?Re:_=5BPostgres=5D_Not_in_czy_jest_co=B6_takie go_=3F?=
  Użytkownik "Marcin Balawejder" <wejder@WYTNIJ.gazeta.pl> napisał w
wiadomości news:dvmiks$4qh$1@inews.gazeta.pl...
> Tabela zawiera elementy drzewa kategorii w sklepie internetowym
> id_category,
> id_root, - identyfikator kategorii nadrzędnej..
> category_name
>
> Chcę wyciągnąć wszystkie liście czyli te kategorie, które są na najniższym
> poziomie tzn. takie, które nie są rodzicami dla żadnej kategorii.
>
> Piszę sobie selecta :
>
> SELECT
> id_category,
> id_root,
> category_name
> FROM
> category cat
> WHERE
> id_category not in (select id_root from category group by id_root)
> ORDER BY
> id_category
>
> ale dlaczego mi nic nie zwraca ?
> ani jednego rekordu...
> coś nie tak z 'not in' ?
>

spróbuj tak:

SELECT
id_category,
id_root,
category_name
FROM
category cat
WHERE
Not Exists (select * from category as root where root.id_root =
cat.id_category)
ORDER BY
id_category

GD

Ps. Co do pytania z drugiego posta, to zamiast <> Null użyj Is Not Null.





Piotr 'piter' Hlawski - 21-03-2006 01:00

  Marcin Balawejder wrote:
[...]
> No dobra, sam tego nie mogę pojąć :)
> Bo właśnie nic mi nie zwraca
[...]

Dla potomnych ;).. this do the trick:

SELECT id_category FROM category WHERE id_category NOT IN (SELECT
coalesce(id_root,0) FROM category GROUP BY id_root) ORDER BY id_category;

problemem był NULL w podzapytaniu ...

--
..:: Piter // phlawski$gmail,com // gg: 4534287 ::.
Kiedyś Chuck Norris zestrzelił niemiecki samolot swoim palcem, mówiąc:
"Bang!".




Grzegorz Danowski - 22-03-2006 00:05
=?iso-8859-2?Q?Re:_=5BPostgres=5D_Not_in_czy_jest_co=B6_takie go_=3F?=
  Użytkownik "Piotr 'piter' Hlawski" <phlawski@cut_this_crap.gmail.com>
napisał w wiadomości news:9854133.HiRSUl4UTV@zatoichi.homeunix.org...
> Marcin Balawejder wrote:
> [...]
>> No dobra, sam tego nie mogę pojąć :)
>> Bo właśnie nic mi nie zwraca
> [...]
>
> Dla potomnych ;).. this do the trick:
>
> SELECT id_category FROM category WHERE id_category NOT IN (SELECT
> coalesce(id_root,0) FROM category GROUP BY id_root) ORDER BY id_category;
>
> problemem był NULL w podzapytaniu ...

To nie lepiej wyrzucić Nulle z podzapytania (Where id_root Is Not Null)?
GD




Piotr 'piter' Hlawski - 22-03-2006 00:05

  Grzegorz Danowski wrote:

> Użytkownik "Piotr 'piter' Hlawski" <phlawski@cut_this_crap.gmail.com>
> napisał w wiadomości news:9854133.HiRSUl4UTV@zatoichi.homeunix.org...
>> Marcin Balawejder wrote:
>> [...]
>>> No dobra, sam tego nie mogę pojąć :)
>>> Bo właśnie nic mi nie zwraca
>> [...]
>>
>> Dla potomnych ;).. this do the trick:
>>
>> SELECT id_category FROM category WHERE id_category NOT IN (SELECT
>> coalesce(id_root,0) FROM category GROUP BY id_root) ORDER BY id_category;
>>
>> problemem był NULL w podzapytaniu ...
>
> To nie lepiej wyrzucić Nulle z podzapytania (Where id_root Is Not Null)?

Tak też radziłem koledze poza grupą, ale później mi przyszło do głowy
coalesce - w końcu to o jednego where mniej. W zasadzie to trzeba by zrobić
EXPLAIN'a przy dużej ilości danych w obydwu wersjach zapytania.

--
..:: Piter // phlawski$gmail,com // gg: 4534287 ::.
Chuck Norris używa lampki nocnej. Nie dlatego, że Chuck Norris boi się
ciemności, to ciemność boi się Chucka Norrisa.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • radioaktywni.htw.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com