mysql两种多表查询的区别?

SQL 1:

SELECT
    a.*,
    b.name
FROM
    t_coach a
LEFT JOIN t_school b on a.school_id=b.id

SQL 2:

SELECT a.*, (select b.name FROM t_school b WHERE b.id= a.school_id) AS name  FROM t_coach a

SQL1和SQL2得到结果是一样的。

在实际开发中第二种SQL 可以这样写吗?
相对于SQL1 ,SQL2的效率是不是低?

阅读 2.5k
1 个回答

SQL1,B表只扫描一遍
SQL2,A表有多少条记录,B表就被扫描多少遍
当你数据库的数据量足够到,SQL2直接出不来结果,会把数据库搞死

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