Re: Oracle outer join porting question

Поиск
Список
Период
Сортировка
От Tambet Matiisen
Тема Re: Oracle outer join porting question
Дата
Msg-id 81132473206F3A46A72BD6116E1A06AE3EC030@black.aprote.com
обсуждение исходный текст
Ответ на Oracle outer join porting question  (Marko Asplund <aspa@kronodoc.fi>)
Ответы Re: Oracle outer join porting question
Re: Oracle outer join porting question
Список pgsql-sql

> -----Original Message-----
> From: Marko Asplund [mailto:aspa@kronodoc.fi]
> Sent: Wednesday, January 15, 2003 4:31 PM
> To: pgsql-sql@postgresql.org
> Subject: [SQL] Oracle outer join porting question
>
>
>
> i'm trying to port an existing application from Oracle8i to
> PostgreSQL but
> i'm having problems understanding a certain outer join query
> type used in
> the application. the query includes a normal outer join
> between two tables
> but also uses outer join syntax to join a table with a
> constant. here's a
> simplified version of the query:
>
> SELECT doc.id,doc.title,sub.user_id,sub.operation
>   FROM document doc, document_subscription sub
>   WHERE 6 = sub.user_id(+) AND sub.document_id(+) = doc.id;
>
> what does the '6 = sub.user_id(+)' condition exactly do in
> this query?
> how would this be translated SQL92 join syntax used by PostgreSQL?
>
> i've tried converting it to:
>
> SELECT doc.id,doc.title,sub.user_id,sub.operation
>   FROM document doc LEFT OUTER JOIN document_subscription sub
>   ON sub.document_id = doc.id
>   WHERE (sub.user_id = 6 OR sub.user_id IS NULL);
>
> but this query is missing the rows in the documents table which have a
> corresponding document_subscription row with 'not user_id = 6'.
>

Try this:

SELECT doc.id,doc.title,sub.user_id,sub.operation FROM document doc LEFT OUTER JOIN document_subscription sub ON
sub.document_id= doc.id AND sub.user_id = 6;  
 Tambet


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Dan Langille"
Дата:
Сообщение: Re: Oracle outer join porting question
Следующее
От: Achilleus Mantzios
Дата:
Сообщение: Re: index on to_char(created, 'YYYY') doesn't work