select a.o,a.a,b.b,c.c from a left join b on a.o=b.o left join c on a.o=c.o

worked, but

select a.o,a.a,b.b from a left join b using (o)

didn't work, it returned an error:
Syntax error or access violation;-3008 POS(20) Invalid keyword or missing delimiter.


Using SQLStudio and the VisualQuery-Dialog i got the Query:
SELECT "TESTUSER"."A"."O",
"TESTUSER"."A"."A",
"TESTUSER"."B"."B",
"TESTUSER"."C"."C"
FROM "TESTUSER"."A","TESTUSER"."B","TESTUSER"."C"
WHERE "TESTUSER"."A"."O" (+) = "TESTUSER"."B"."O"
AND "TESTUSER"."A"."O" (+) = "TESTUSER"."C"."O"

which uses the (+)-syntax again.
it retuns the wrong results, and i think, that this is worth a bug-report (for both SQLStudio and SAPDB)



Stefan Gustafsson wrote:

I now remeber why I used the (+) syntax, the FROM syntax does not work.
I have tried to rewrite my example using the ANSI syntax but I can't get
7.3.00.25
to accept more than one join at the time.

SELECT A.o,A.a,B.b,C.c FROM A LEFT JOIN B USING (o) LEFT JOIN C USING (o)
gives -3014 Syntax error or access violation;-3014 POS(53) Invalid end of
SQL statement.

Also SELECT A.o,A.a,B.b,C.c FROM A LEFT JOIN B USING (o), C gives two rows
with all columns set. I was expecting a NULL in the second row.

Can someone please test these on a 7.3.00.29 and report if it work
in that version?

Regards,
Stefan Gustafsson



>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:sapdb.general-admin@;listserv.sap.com]On Behalf Of Sven Kohler
>Sent: den 7 november 2002 21:26
>To: [EMAIL PROTECTED]
>Subject: Re: Join problem
>
>
>
>>YOu might want to try 7.3.0.29 and see what happens - SAP did a major
>>rework
>>of the join logic to support ANSI compliance ("LEFT OUTER" syntax).  I
>>expect they might have fixed a few things :)
>
>
>Already tested that.
>The results are as wrong as in 7.3.0.25
>
>
>>Looking at your sample, it might explain why I had so much trouble
>>with this
>>when I was doing some coding 3 months ago.
>
>This is a somewhat "strange" syntax. Is the (+) part of any SQL-Standard?
>
>After i knew what that (+) is for, i decided do ban that from my mind.
>It is much more logical to declare an OUTER JOIN (that's what the (+) is
>for) in the FROM clause. It doesn't make much sense to me to put it into
>the WHERE clause.
>
>
>
>_______________________________________________
>sapdb.general mailing list
>[EMAIL PROTECTED]
>http://listserv.sap.com/mailman/listinfo/sapdb.general
>


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

Reply via email to