图解MySQL里的各种 JOIN,看完不懂来找我!
副问题[/!--empirenews.page--]
从业以来首要在做客户端,用到的数据库都是表布局较量简朴的 SQLite,以我那还给先生一泰半的 SQL 程度倒也能搪塞。此刻无意必要到靠山的 SQL Server 里追查一些数据题目,就显得有点捉襟见肘了,出格是各类 JOIN,偶然辰傻傻分不清晰,于是索性弄大白并做个记录。 媒介 在各类问答社区里谈及 SQL 里的各类 JOIN 之间的区别时,最被广为引用的是 CodeProject 上 C.L. Moffatt 的文章 Visual Representation of SQL Joins,他确实讲得简朴明白,行使文氏图来辅佐领略,结果明明。本文将相沿他的讲授方法,稍有演绎,可以视为该文较为粗拙的中译版。 约定 下文将行使两个数据库表 Table_A 和 Table_B 来举办示例讲授,其布局与数据别离如下:
个中 PK 为 1 的记录在 Table_A 和 Table_B 中都有,2 为 Table_A 特有,3 为 Table_B 特有。 常用的 JOIN 1、INNER JOIN INNER JOIN 一样平常被译作内毗连。内毗连查询能将左表(表 A)和右表(表 B)中能关联起来的数据毗连后返回。 文氏图: INNER JOIN 示例查询:
查询功效:
注:个中 A 为 Table_A 的别名,B 为 Table_B 的别名,下同。 2、LEFT JOIN LEFT JOIN 一样平常被译作左毗连,也写作 LEFT OUTER JOIN。左毗连查询会返回左表(表 A)中全部记录,不管右表(表 B)中有没有关联的数据。在右表中找到的关联数据列也会被一路返回。 文氏图: LEFT JOIN 示例查询:
查询功效:
3、RIGHT JOIN RIGHT JOIN 一样平常被译作右毗连,也写作 RIGHT OUTER JOIN。右毗连查询会返回右表(表 B)中全部记录,不管左表(表 A)中有没有关联的数据。在左表中找到的关联数据列也会被一路返回。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |