mysql中 对多表的查询有两种方式:表连接,子查询
表连接 是对 多张表 做笛卡尔积,生成临时表,消耗内存
子查询分步的单表查询(in, exists)
表连接时 根据 on 后面的条件做关联
生成临时表后 通过where条件再次过滤关联的结果
join 条件是在生成临时表时做过滤
where 是在生成临时表后 再次筛选
join on后面的条件 对A,B表都起作用,
join left on 后面的条件 只对 B表起作用
mysql中 对多表的查询有两种方式:表连接,子查询
表连接 是对 多张表 做笛卡尔积,生成临时表,消耗内存
子查询分步的单表查询(in, exists)
表连接时 根据 on 后面的条件做关联
生成临时表后 通过where条件再次过滤关联的结果
join 条件是在生成临时表时做过滤
where 是在生成临时表后 再次筛选
join on后面的条件 对A,B表都起作用,
join left on 后面的条件 只对 B表起作用
相关文章: