MySQL学习笔记:第四天(二)多表连接查询

本文详细介绍了MySQL中多表连接查询的各种类型,包括等值连接、非等值连接、外部连接(左外连接和右外连接)、笛卡尔积、自然连接、USING子句和ON子句的用法。通过实例解释了如何在多表查询中避免歧义列名,提高查询性能,并展示了如何使用表名前缀和别名来区分相同列名。
摘要由CSDN通过智能技术生成

多表连接

连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。

  • 在 WHERE子句中书写连接条件。
  • 如果在多个表中出现相同的列名,则需要使用表名作为来自该表的列名的前缀。
  • N个表相连时,至少需要N-1个连接条件。

连接类型

按连接条件分:

  1. 等值连接
  2. 非等值连接

按其他连接方法分

  1. 外部连接
  2. 内部连接

笛卡尔积

笛卡尔积,是第一个表中的所有行和第二个表中的所有行都发生连接。

笛卡尔积在下列情况产生

  • 连接条件被省略
  • 连接条件是无效的

限制歧义列名

  • 在用到多个表时可以使用表名作前缀来限定列;
  • 通过使用表前缀可以提高性能;
  • 通过使用列的别名可以区分来自不同表但是名字相同的列;

自身连接

自身连接,也叫自连接,是一个表通过某种条件和本身进行连接的一种方式,就如同多个表连接一样。

SELECT worker.ename ‘WNAME’,manager.ename ‘LNAME’
  FROM 	emp worker, emp manager
 WHERE 	worker.mgr = manager.empno;

交叉连接

交叉连接会产生连个表的交叉乘积,和两个表之间的笛卡尔积是一样的;

使用CROSS JOIN 子句完成。

自然连接

自然连接是对两

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值