ztt2dd2
2015-08-24 07:08
采纳率: 57.1%
浏览 1.8k

mysql 两张表关联查询问题

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

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

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

    打赏 评论
  • delzzz 2015-08-25 01:52

    左外连left join

    打赏 评论
  • jiajia333666 2015-08-27 13:34

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

    打赏 评论

相关推荐 更多相似问题