• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL表连接_MySQL

mysql 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

一、内连接

  语法:

SELECT ... FROM join_table    [INNER] JOIN join_table2     [ON join_condition]     WHERE where_definition

  只列出这些连接表中与连接条件相匹配的数据行。

  例:

SELECT * FROM table1 a JOIN table2 b ON a.dept_id = b.id;或SELECT * FROM table1 a, table2 b WHERE a.dept_id = b.id;

二、外连接

语法:

SELECT ... FROM join_table    (LEFT|RIGHT|FULL) [OUTER] JOIN join_table2    ON join_condition    WHERE where_definition

  不仅列出与连接条件相匹配的行,还列出左表(左外连接)、右表(右外连接)或两个表(全外连接)中所有符合WHERE过滤条件的数据行。需要注意的是MySQL5.1暂不支持FULL JOIN连接。

  例:

左外连:  SELECT * FROM table1 a LEFT JOIN table2 b ON a.dept_id = b.id;右外连:SELECT * FROM table1 a RIGHT JOIN table2 b ON a.dept_id = b.id;

三、交叉连接

  语法:

SELECT ... FROM join_table<a style="color:transparent">本文来源gao($daima.com搞@代@#码$网</a> CROSS JOIN join_table2;

  没有ON子句和WHERE子句,它返回连接表中所有数据行的笛卡尔积。

  其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

  相当于:

SELECT ... FROM table1, table2;

四、自连接

  参与连接的表都是同一张表。(通过给表取别名虚拟出)

SELECT a.name aname, b.name bname FROM table a LEFT JOIN table bON b.id = a.gmr;--查询出员工姓名和其经理的姓名  SELECT a.name aname FROM table a RIGHT JOIN table b ON a.id = b.gmr; --查询出所有经理的姓名

  自连接在实际应用当中比较常见,其语句也绕口,可将同一张表当成两张不同的表来理解,比如明明是同一张表,记录了员工基本信息,其中包含着每位员工的经理的ID,那么则可以把它当作一张员工表,一张经理表来对待。呃~怎么说呢,还是有点绕,等到实际应用中慢慢摸索吧。。。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL表连接_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址