konto usunięte

Temat: (+)= ????

co oznacza (+)= w w warunku np:
pole(+)=pole2 ??

Przerzucam zapytanie do innej bazy i nie znam tego znacznika. To rodzaj zlaczenia? jak wyrzuce(+) to zapytanie idzie...ale czym to zastapic?
Mariusz Łakomy

Mariusz Łakomy administrator baz
danych, Raben
Management Services
Sp.z ...

Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: (+)= ????

Stosowane przez programistow Oracle ktorzy chca zeby ich kod wygladal bardziej "pro" i nie dawal sie odpalic na innych platformach. Zastepuje JOIN.

konto usunięte

Temat: (+)= ????

dziekuje.

konto usunięte

Temat: (+)= ????

dokłądnie to coś w rodzaju join
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: (+)= ????

PIOTR MAJEWSKI:
co oznacza (+)= w w warunku np:
pole(+)=pole2 ??

Przerzucam zapytanie do innej bazy i nie znam tego znacznika. To rodzaj zlaczenia? jak wyrzuce(+) to zapytanie idzie...ale czym to zastapic?

Jest to left lub right outer join. Generalnie - znacznik (+) jest zawsze przy polu, które może zawierać nulle. Aby to na pewno nie był inner join, ten znacznik musi być przy każdym polu użytym w klauzuli WHERE z dołączanej tabeli.
Czyli:


SELECT kt.ID
, ul.ID
FROM kth_kontrahenci kt
, umo_umowy ul
WHERE kt.ID = ul.kth_kontrahent_id(+)
AND ul.data_zawarcia(+) >= '2009-01-01'

efekt jest, jak przy złączeniu:
kth_kontrahenci left join umo_umowy

natomiast:


SELECT kt.ID
, ul.ID
FROM kth_kontrahenci kt
, umo_umowy ul
WHERE kt.ID = ul.kth_kontrahent_id(+)
AND ul.data_zawarcia >= '2009-01-01'

efekt jest, jak przy złączeniu:
kth_kontrahenci join umo_umowy
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: (+)= ????

zastap gwiazdka *

konto usunięte

Temat: (+)= ????

Dodac jeszcze nalezy, ze to stara skladnia - niepolecana. Na dodatek nie zrobisz:
a(+) = b(+)
- trzeba zrobic FULL OUTER JOIN.
Konrad Jaszczuk

Konrad Jaszczuk IT Consultant.
PRINCE2
Practitioner. ITIL
Certified. PMI ...

Temat: (+)= ????

używane w starszych wersjach Oracle (chyba w 9).. Oczywiście nadal można spotkać gdzieś w kodzie PL/SQL.
Dawid Glowacki

Dawid Glowacki BI/DW/ETL Consultant

Temat: (+)= ????

Ta składnia jest rzeczywiście stara, typowo Oraclowa, i mniej czytelna niż JOIN według ANSI SQL.
Ale o dziwo jest nadal powszechnie używana nawet w nowo produkowanym kodzie, co potrafi czasem denerwować, szczególnie kogoś kto myśli już według ANSI SQL:)
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: (+)= ????

Dawid Glowacki:
Ta składnia jest rzeczywiście stara, typowo Oraclowa, i mniej czytelna niż JOIN według ANSI SQL.
Ale o dziwo jest nadal powszechnie używana nawet w nowo produkowanym kodzie, co potrafi czasem denerwować, szczególnie kogoś kto myśli już według ANSI SQL:)

Mnie strasznie wnerwia :)
Dziś znalazłam kilka kursorów z takim kodem. W klauzuli FROM - 20 tabel, każda z jedno- lub dwuliterowym aliasem. W WHERE warunki łączące te tabele, których już w pewnym momencie nie widać na górze ekranu, przemieszane z warunkami filtrującymi. I wszędzie nadźgane tymi plusami. Fuuuuj :)
W dodatku nie da się połączyć 3 tabel tak, jakbyśmy używali samych left joinów, łączących poprzednią z następną.

konto usunięte

Temat: (+)= ????

wyobraźcie sobie że pracowałem na bazie bez Joinów, a mowa tu o Informixie w jakiejś archaicznej wersji
to jest dopiero zabawa

Temat: (+)= ????

Przemysław R.:
wyobraźcie sobie że pracowałem na bazie bez Joinów, a mowa tu o Informixie w jakiejś archaicznej wersji
to jest dopiero zabawa

Ja nadal pracuję na Informixie ...
ale Informix ma joiny (przynajmniej wersja z 1995 r.)
Outer też ma...
Nie używa tylko słowa JOINPiotr Wolański edytował(a) ten post dnia 07.01.10 o godzinie 18:52

konto usunięte

Temat: (+)= ????

Piotr Wolański:
Przemysław R.:
wyobraźcie sobie że pracowałem na bazie bez Joinów, a mowa tu o Informixie w jakiejś archaicznej wersji
to jest dopiero zabawa

Ja nadal pracuję na Informixie ...
ale Informix ma joiny (przynajmniej wersja z 1995 r.)
Outer też ma...
Nie używa tylko słowa JOIN

jedyna składania jaką łyka to mniej więcej coś takiego:

SELECT c.customer_num, c.lname, c.company, 
c.phone, u.call_dtime, u.call_descr
FROM customer c, OUTER cust_calls u
WHERE c.customer_num = u.customer_num


zdziwiło mnie to ogromnie, ale swoją drogą aplikacja też jest leciwa ma z 15 lat
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: (+)= ????

Izabela Korzińska:
Dawid Glowacki:
Ta składnia jest rzeczywiście stara, typowo Oraclowa, i mniej czytelna niż JOIN według ANSI SQL.
Ale o dziwo jest nadal powszechnie używana nawet w nowo produkowanym kodzie, co potrafi czasem denerwować, szczególnie kogoś kto myśli już według ANSI SQL:)

Mnie strasznie wnerwia :)
Dziś znalazłam kilka kursorów z takim kodem. W klauzuli FROM - 20 tabel, każda z jedno- lub dwuliterowym aliasem. W WHERE

Czesc narzedzi analitycznych do dzisiaj tak generuje kod (np. Discoverer - tylko, ze aliasy tabel w tym przypadku nie sa dwuliterowe...)
warunki łączące te tabele, których już w pewnym momencie nie widać na górze ekranu, przemieszane z warunkami filtrującymi.

A co ja sie musze nawalczyc ze "starymi" programistami Oraclowymi tlumaczac im, ze nowa skladnia (ta zgodna z ANSI SQL - czyli "joiny") jest czytelniejsza :-)
wszędzie nadźgane tymi plusami. Fuuuuj :)
W dodatku nie da się połączyć 3 tabel tak, jakbyśmy używali samych left joinów, łączących poprzednią z następną.

W wiekszowsci przypadkow da sie, tylko kazdy normalny programista po prostu pogubi sie w tej ilosci plusow, ktora trzebaby nastawiac...

Temat: (+)= ????

Ja tam jednak wolę składnię z (+) jest dużo czytelniejsza
zwłaszcza, jeżeli w jednym zapytaniu łączy się kilka(-naście) tabel w tym kilka outer join do tabeli bazowej
(optymalizator też może się wykazać ;) łącząc tabele w innej kolejności)

Poza tym:
http://groups.google.com/group/pl.comp.bazy-danych/bro...
był poruszany problem z podzapytaniami w składni left join
Dawid Glowacki

Dawid Glowacki BI/DW/ETL Consultant

Temat: (+)= ????

Piotr Wolański:
Ja tam jednak wolę składnię z (+) jest dużo czytelniejsza
zwłaszcza, jeżeli w jednym zapytaniu łączy się kilka(-naście) tabel w tym kilka outer join do tabeli bazowej
(optymalizator też może się wykazać ;) łącząc tabele w innej kolejności)

Co co czytelności to nie moge się z tym niestety zgodzić, choć przyznam że zanim przełączyłem swój kod na ANSI myślałem podobnie.

Dlatego proponuje wykonać prosty test: Proszę dla przykładu/zabawy przepisać kilka większych zapytań z (+) na ANSI JOINY.

W moim przypadku, po takiej krótkiej praktyce nigdy już nie wróciłem do archaicznych plusów:)

Pozdrawiam
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: (+)= ????

Piotr Wolański:
Ja tam jednak wolę składnię z (+) jest dużo czytelniejsza
zwłaszcza, jeżeli w jednym zapytaniu łączy się kilka(-naście) tabel w tym kilka outer join do tabeli bazowej
(optymalizator też może się wykazać ;) łącząc tabele w innej kolejności)

Dawid juz napisal co nieco o czytelnosci (dla mnie "outer join" tez jest czytelniejsze - ale dopiero po kilku latach walki z samym soba moge to powiedziecm wczesniej preferowalem (+))

Co do wydajnosci - to i tak optymalizator sam wie lepiej w jakiej kolejnosci siegnac do tabelek, chyba, ze w zapytaniu pojawi sie odpowiedni HINT, to wowczas byc moze wymusisz na nim konkretna kolejnosc czytania tabel
Dawid Glowacki

Dawid Glowacki BI/DW/ETL Consultant

Temat: (+)= ????

Mariusz Masewicz:
dla mnie "outer join" tez jest czytelniejsze - ale dopiero po kilku latach walki z samym soba moge to powiedziecm wczesniej preferowalem (+))

Chyba najtrudniej to właśnie zmienić wieloletnie przyzwyczajenia.
Być może łatwiej mają ludzie z mniejszym bagażem doświadczenia...

Pozdrawiam



Wyślij zaproszenie do