连表查询
SELECT
a.id ,
b.server_id
from
release_record as a
JOIN release_details as b
on a.id =b.release_id
解析:
连表查询的意思是,from后跟的表a为左表,join后面跟的表b为右表,on是条件,选择一张表作为驱动表去对比另外一张表,把满足条件的内容查出来,select字段表示要展示的字段。
-
内连接
[inner] join
,选择一张表作为驱动表(具体选择哪张表会根据on和where的条件根据最优索引去选择)去对比另外一张表,假设在b表中有满足条件的数据就将连表查出来。select字段表示要展示的字段。假设select的字段和on where的字段都是索引,在查询的时候就不会回表,直接从索引里面吧数据查出来。
-
左连接
left join
以左表为驱动表。去对比另外一张表,假设在b表中有满足条件的数据就将连表查出来 再加上 b表中不满足条件的已null展示。
-
右连接
right join
理论同左连接
-
加上where条件
把连表查询之后的数据再过滤一遍。
但是在实际执行当中,where的条件也会作为条件来选择驱动表 和 最佳索引。不仅仅是先连表查询再根据where条件过滤,表面上的现象是可以这么理解的。
标签:满足条件,join,sql,查询,连表,mysql,where,id From: https://www.cnblogs.com/fanever/p/17079619.html