Hello,

Can someone please explain why these joins give different results.

// First create some tables
//
CREATE TABLE A ( o FIXED(10) KEY NOT NULL,a FIXED(10) )
//
CREATE TABLE B ( o FIXED(10) NOT NULL,b VARCHAR(32) , FOREIGN KEY (o)
REFERENCES A (o) ON DELETE CASCADE)
//
CREATE TABLE C ( o FIXED(10) NOT NULL,c VARCHAR(32) , FOREIGN KEY (o)
REFERENCES A (o) ON DELETE CASCADE)

// Insert some data
INSERT INTO A SET o = 1, a = 1
//
INSERT INTO B SET o = 1, b = 'String1'
//
INSERT INTO A SET o = 2, a = 2
//
INSERT INTO C SET o = 2, c = 'String2'

// First select, work as expected
SELECT A.o,A.a,B.b,C.c FROM A,B,C WHERE A.o = B.o (+) AND A.o = C.o (+)

// Second select. Gives two rows where b and c is NULL!
SELECT A.o,A.a,B.b,C.c FROM C,B,A WHERE A.o = B.o (+) AND A.o = C.o (+)

Is this a bug or do I need to order by tables in the FROM
statement depending on how i do my join?

I use:
Kernel    7.3.0    Build 025-000-085-923
NT/INTEL  7.3.0    Build 025-000-085-923

Best Regards,
Stefan Gustafsson
CTO IT-Security
Steria AB

_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to