subquery using IN clause

前端 未结 4 1715
[愿得一人]
[愿得一人] 2021-01-15 06:02
----------
User
----------
user_ID(pk)
UserEmail

----------
Employer1
----------
Emp1ID(pk)
Emp1NO

----------
Employer2
----------
Emp2ID(pk)
Emp2NO

----------
Pr         


        
4条回答
  •  长发绾君心
    2021-01-15 06:57

    Eric Hauser is correct - you can't specify two columns in SELECT contained in an IN clause to one column outside.

    That said, I re-wrote your query so you don't need to use UNIONs at all:

    SELECT DISTINCT u.user_email
      FROM USERS u
      JOIN EMPLOYER e ON u.user_id IN (e.emp1id, e.emp2id) 
      JOIN PROJECT p ON e.emp1no IN (p.projempid, p.projempmgrid)
                     OR e.emp2no IN (p.projempid, p.projempmgrid)
    

    I also changed the query to use ANSI-92 JOIN syntax - your original uses ANSI-89.

提交回复
热议问题