Intereting Posts
Дизайн БД для использования подтипа или нет? Как обновить один столбец, используя другой столбец в другой таблице? Ошибка SQL: ORA-00933: команда SQL неправильно завершена Как вставить данные в таблицу с помощью хранимых процедур в postgresql SQL N-й день N-й недели месяца SQL-запрос для преобразования строк в столбцы Есть ли способ включить запрос, который не обновляется в запросе UPDATE? Crystal Reports – группа по Запрос MySQL. Объедините данные на основе двух факторов, затем настройте способ сортировки данных на основе значений Доступ к последней вставленной строке в mysql Обновление AccessDatasource ничего не делает, но не имеет ошибки Столбец ReNumber Auto Increment в SQL Запрос Критерии Гибернации: получение списка объектов с отношением m..n, где дочерняя таблица не имеет определенного свойства Oracle SQL: извлечение недели года с даты дает случайные результаты Oracle SQL Query для суммирования статистики с использованием GROUP BY Согласование всех значений в разделе IN

Преобразование от 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 

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