ztt2dd2
ztt2dd2
采纳率57.1%
2015-08-24 07:08 阅读 1.8k

mysql 两张表关联查询问题

现在有表A大概是百万级的数据,表B只有几千行,但是想在查询表A里剔除掉表B的数据,SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id),这种写法效率很低,请问有没有其他的解决方法?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    devmiao devmiao 2015-08-24 07:30

    这样写当然效率低,因为是笛卡尔积,要用join
    select a.*, b.* from a join b on a.id=b.id

    点赞 1 评论 复制链接分享
  • delzzz delzzz 2015-08-25 01:52

    左外连left join

    点赞 评论 复制链接分享
  • jiajia333666 jiajia333666 2015-08-27 13:34

    select * from A where Aid not in (select bId from B)

    点赞 评论 复制链接分享

相关推荐