繁体   English   中英

Oracle外部联接声明

[英]Oracle Statement for outer join

我有两个表:

模块表

  • 的moduleId
  • ModuleData
  • ModuleSectionID

用户资料表

  • UserProfileID
  • 用户身份
  • 的moduleId

我需要将两个表连接在一起,但是对于每个模块条目,都不必存在UserProfile表。 我将传递两个变量ModuleSectionID和UserID。 这些将有助于缩小最终结果的范围。

期望的结果应该是这样的

M.ModuleID, M.ModuleData, M.ModuleSection, U.UserProfileID, U.UserID, U.ModuleID
---------------------------------------------------------------------------------
13         "DataData"     3                1                132       13
12         "Data2Data2"   3                Null             Null      Null
15         "Data3Data3"   3                3                132       15

采用:

   SELECT m.moduleid,
          m.moduledata,
          m.modulesection,
          up.upserprofileid,
          up.userid, 
          up.moduleid
     FROM MODULE m
LEFT JOIN USERPROFILE up ON up.moduleid = m.moduleid
                        AND up.userid = IN_USERID
    WHERE m.modulesection = IN_MODULESECTIONID

IN_USERIDIN_MODULESECTIONID表示要提供给查询的变量。

尝试这个:

SELECT M.ModuleID, M.ModuleData, M.ModuleSectionID, U.UserProfileID, U.UserID, U.ModuleID
    FROM Module m, UserProfile u 
 WHERE M.ModuleSctionID = <MODULE_SECTIONID_PARAMETER>
 AND M.ModuleID = U.ModuleID(+)
 AND <USER_ID_PARAMETER> = U.UserID (+)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM