Outer Joinin Doğru Kullanımı

Outer join kullanırken dikkat edilmesi gereken basit ancak fazla bilinmediğini düşündüğüm bir nokta var.

Bir SELECT cümlesinde outer join kullanıldığında, kullanılan tablo üzerinde başka where conditionları varsa sorgu outer join yokmuş gibi çalışıyor.

Bu nedenle aynı tablo üzerindeki kolonlarla ilgili diğer where conditionlarına da outer join(+) eklenmesi gerekiyor.

Aşağıdaki script incelenirse konu daha iyi anlaşılacaktır diye düşünüyorum.

  1. SQL doğru data getiren ekstra condition olmayan outer join örneği
  2. SQL yanlış data getiren outer join örneği
  3. SQL doğru data getiren 2. SQL deki eksikliğin giderildiği outer join örneği

DROP TABLE OUTER_DENEME

/

DROP TABLE OUTER_DENEME2

/

CREATE TABLE OUTER_DENEME(NO NUMBER,AD VARCHAR2(10))

/

CREATE TABLE OUTER_DENEME2(NO NUMBER,AD VARCHAR2(10))

/

BEGIN

INSERT INTO OUTER_DENEME VALUES (1,’ERSIN’);

INSERT INTO OUTER_DENEME VALUES (2,’SELAMİ’);

INSERT INTO OUTER_DENEME VALUES (3,’VELİ’);

INSERT INTO OUTER_DENEME2 VALUES (1,’ERSIN’);

INSERT INTO OUTER_DENEME2 VALUES (2,’SELAMİ’);

COMMIT;

END;

/

SELECT * FROM OUTER_DENEME A, OUTER_DENEME2 B

WHERE A.NO=B.NO (+)

/

SELECT * FROM OUTER_DENEME A, OUTER_DENEME2 B

WHERE A.NO=B.NO (+)

AND B.AD IS NOT NULL

/

SELECT * FROM OUTER_DENEME A, OUTER_DENEME2 B

WHERE A.NO=B.NO (+)

AND B.AD (+) IS NOT NULL

/

Yayınlandı: on 21 Ağustos 2007 at 3:01 pm Yorumlar (1)

Bu yazının geri izlemesini yapmak için URI: http://ersin.wordpress.com/2007/08/21/outer-joinin-dogru-kullanimi/trackback/

Bu yazıya yapılan yorumlar için RSS beslemeleri.

Bir Yorum Leave a comment.

  1. Ersin selam,

    Farklı bir ornek ile desteklemek istedim – http://optimaldba.blogspot.com/2007/08/outer-joins-nulls-and-filters.html

    Umarim biraz daha zaman bulursun blog icin :)
    Tonguc


Leave a Comment