SQL语句连接查询问题

代码助手 其他问答 1
select * from A join B on A.id in (B.sid);

怎么实现连接查询的时候,像where一样用in来做连接两张表的条件

回复

共2条回复 我来回复
  • 毕设驿站
    这个人很懒,什么都没有留下~
    评论

    如果我没理解错你的问题的话,你这个直接用等于就可以了

    select * from A join B on A.id=B.sid
    

    如果你只是想查询A表的数据,那么你可以这样

    select * from A where Id in (select sid from B)
    

    select * from A where exists (select 1 from B where B.sid=A.Id)
    
    0条评论
  • 毕业设计驿站
    这个人很懒,什么都没有留下~
    评论

    这个是您理解的问题,连接是乘法操作,你这里a.sid in (b.sid) 其实就是a.sid=b.sid了,但是您的真实意思有可能不是这个。 是否是想查询 a的id在b中有的记录? 那么就直接 select * from a where a.id in(select id from b) x 这样就可以了。这个主要看您是什么意思

    0条评论

发表回复

登录后才能评论