Преобразование кода из Oracle 8i в MySQL - PullRequest
0 голосов
/ 02 сентября 2018

Как преобразовать приведенный ниже код из Oracle 8i в MySQL-

select count(*) 

from   patient_visit,
        organization_master
where patient_visit.organization_id=organization_master.organization_id(+);   

В операторе where "organization_master.organization_id (+)" не работает в MySQL.

Просьба предложить.

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

(+) является специфичной для Oracle нотацией для внешнего объединения. Я думаю, что вы должны написать что-то вроде этого

select count(*)     
FROM patient_visit
LEFT OUTER JOIN organization_master
ON patient_visit.organization_id=organization_master.organization_id

Я не проверял, так как у меня нет данных для проверки, но он должен работать.

Надеюсь, это поможет

0 голосов
/ 02 сентября 2018

Вам потребуется использовать стандартный синтаксис JOIN, который поддерживается всеми современными базами данных SQL (в том числе Oracle):

select    count(*)
from      patient_visit
left join organization_master
       on patient_visit.organization_id = organization_master.organization_id

Если у вас есть другие объединения без (+), просто замените их на inner join: полностью избегайте запятой в предложении from. Другие условия, не связанные с присоединением, просто остаются в предложении where.

Например:

select     count(*)
from       patient_visit
inner join patient_registration 
        on patient_registration.pprn_regd_id = patient_visit.pprn_regd_id
left join  organization_master 
        on patient_visit.com_organization_id = organization_master.com_organization_id
where      patient_visit.ghm_hosp_id = i_hosp_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...