select AuLockNo,AuDoorName 
from jsAuthorizedObjects
where AuUserName='吕建华' and AuLockNo in 
  (select AuLockNo,AuDoorName 
   from jsAuthorizedObjects
   where AuUserName='屈玉山' and AuLockNo in 
     (select AuLockNo,AuDoorName 
      from jsAuthorizedObjects
      where AuUserName='杨方'
      )
   )

解决方案 »

  1.   

    select AuLockNo,AuDoorName 
    from jsAuthorizedObjects
    where (AuLockNo in 
              (Select AuLockNo from jsAuthorizedObjects Where
                 AuUserName='吕建华' )
           ) and
           (AuLockNo in 
              (Select AuLockNo from jsAuthorizedObjects Where
                 AuUserName='屈玉山' )
           )
      

  2.   

    如果表里不只有3个人的话,查找表中人的总数等于按门号分组的最大值的门和锁就是他们都能够打开的门,希望那位大虾能把这SQL语句写出来。关注~
      

  3.   

    colacoca的语句可以,不过要把子select语句的查询对象该为AuLockNo。
    plainsong的不行,它是把吕建华、屈玉山能够开的门分别列出来。
      

  4.   

    请继续讨论有没有其他方法,colacoca待会给你分。
      

  5.   

    用嵌套SQL语句就可以解决啊要不你用3次SQL也可以啊,或者你用存储过程也可以啊,后者可以解决效率的问题啊。给我分 啊
      

  6.   

    mgbexplore你起码给个例子嘛,这样就想要分,你等于没说。
      

  7.   

    一句SQL写不出来,刚才的是知道结果写答案,如果数据库里面有10个人或者更多的人,怎么写出结果来?这是在求最小的交集。用存储过程或者写一个函数才能实现。如果谁能一句话写出来,我给他加20分
      

  8.   

    试试这个:select distinct a1.AuLockNo,a1.AuDoorName
    from jsAuthorizedObjects a1
         JOIN jsAuthorizedObjects a2 ON a1.AuLockNo = a2.AuLockNo
         AND a1.AuUserNo <> a2.AuUserNO and a1.AuUserNo = '4'如果再多人的话一句好象是写不出来的,必须先找到有最少AuLockNo数量
    的AuUserNo才行。