求问一个 mysql sql语句的解释?

新手上路,请多包涵

mysql:
select * from a,b where b.id in (1,2,3);

a,b 之间没有直接联系
那么搜索出来的 a 的结果,有什么意义,是怎么搜索出来的额,不太懂这个sql语句 ?

能解释一下这个SQL语句吗?

阅读 2.6k
5 个回答

如果a表里面有关联的b的id字段,外键?那就有意义了。

a和b做了个笛卡尔积

当a,b之间有外键关联,则查询出b.id in (1,2,3)a中对应外键关联的数据;
没有外键关联,则用b.id in(1,2,3)查询的数据和a里面所有数据做笛卡尔积并返回

查出表b中id是1,2,3的记录,然后和表a做笛卡尔积。

查询出b.id in (1,2,3)和a中对应外键关联的数据或笛卡尔积

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题