Talk is cheap

SQL的各种连接图解

之前对于数据库中除左右连接以外的连接都比较模糊,看了各种文章也总是记不住。 终于遇到了这样的一个图解,从集合的角度来诠释各种连接的关系,简单易记。

要注意的是:

  1. 在Mysql中不存在 FULL JOIN ,但是全连接的概念仍然存在,只是需要写为
    select * from a left join b on a.id = b.pid  UNION ALL  a right join b on a.id =b.pid

    2.自连接(表自己连接自己) 与inner join 有同样的效果,可以认为自连接是内连接的一个特例。如下表:

这个表结构是常见的树形菜单结构,父菜单与子菜单之间通过 id 和 pid进行关联。现在要求每个根节点下级的菜单, 可以通过自连接 或者内连接来实现

SELECT * FROM  hd_link_resources  as lr1 ,hd_link_resources as lr2  WHERE lr2.pid = lr1.id

SELECT * FROM  hd_link_resources  as lr1  INNER JOIN hd_link_resources as lr2  ON lr1.id =lr2.pid

上面的两个语句的效果是完全一样的

未经允许不得转载:CheapTalk » SQL的各种连接图解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!