回答

收藏

为什么不能将OR或IN与OUTER JOIN操作一起使用?

技术问答 技术问答 225 人阅读 | 0 人回复 | 2023-09-12

如果我在Oracle
8 Q6 @  D. J# v8 u2 m8 jSQL以下查询(受此问题启发)用于数据库:
  c2 s* @0 J( d, h0 j: |SELECT p.Name,a.AttributeFROM People pLEFT OUTER JOIN Attributes aON p.PersonID = a.PersonID WHERE a.Attribute IN ('Happy','Grouchy')AND p.person_id IN ('Elmo','Oscar')我会犯错:
; w$ d) |. Z' M  Z& O$ A8 kORA-01719:OR或IN外部连接运算符( )不允许在操作数中使用
' F  ~: g8 }! J" k5 _$ m
尽管这应该解决:
' Q5 c( \/ w7 T/ i( xSELECT p.Name,a.AttributeFROM People pLEFT OUTER JOIN Attributes aON p.PersonID = a.PersonID AND a.Attribute IN ('Happy','Grouchy') AND p.person_id IN ('Elmo','Oscar')谁能解释为什么第一错误的原因?实际区别是什么?
# s! u6 R3 z% t4 y                                                                7 D+ u7 D* f0 P: R$ @7 m
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则