Преобразование от Oracle к внешнему соединению ANSI

Я должен переписать много SQL-запросов с Oracle external join notation (+) в ANSI SQL. Я прочитал что-то о синтаксисе Oracle, но были очень легкие примеры. Как посмотреть этот запрос в нотации ANSI?

SELECT * FROM realtion r1, relation r2 WHERE r1.relno=r2.relno(+) AND r.id(+)=10 

или

 SELECT * FROM Mail M, Code C, Relation R WHERE M.STATUS = 2 AND C.id = M.usrID AND r.relo(+) = m.item AND R.item(+) = m.att 

В первом запросе у вас есть alias r, я предполагаю, что это r2.

 SELECT * FROM realtion r1 left join relation r2 on r1.relno=r2.relno AND r2.id=10 

если r2.id не является частью соединения:

 SELECT * FROM realtion r1 left join relation r2 on r1.relno=r2.relno WHERE r2.id=10 or r2.id is null 

и (моя догадка m.status не является частью соединения)

 SELECT * FROM Mail M inner join Code C on m.usrID = c.id left join Relation R on m.item = r.relo and m.att = r.item WHERE M.STATUS = 2 

Первый запрос (предполагая, что по r.ID вы имели в виду r2.ID ):

 SELECT * FROM realtion r1 LEFT OUTER JOIN relation r2 ON r2.relno = r1.relno AND r2.id = 10 

Второй запрос:

 SELECT * FROM Mail M INNER JOIN Code C ON C.id = M.usrID LEFT OUTER JOIN Relation R ON r.relo = m.item AND R.item = m.att WHERE M.STATUS = 2 

Поделитесь и наслаждайтесь.