为什么不能将OR或IN与OUTER JOIN操作一起使用?
技术问答
187 人阅读
|
0 人回复
|
2023-09-12
|
如果我在Oracle
6 o) Z. x2 l! [8 {( E$ ySQL以下查询(受此问题启发)用于数据库:
9 R! } U8 s. ?- S/ R1 TSELECT 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')我会犯错:
8 H6 p/ R2 w/ a5 i! f/ ~ORA-01719:OR或IN外部连接运算符( )不允许在操作数中使用3 W+ w4 V& y; }6 S) G
尽管这应该解决:
( U- ^8 V, \% k. w& L/ `% G6 _2 |SELECT 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')谁能解释为什么第一错误的原因?实际区别是什么?/ O& p: _9 x# h: d
6 Q2 m4 o. V/ x$ K* L' o" |7 N 解决方案: |
|
|
|
|
|