MySQL学习要点(3/10)

第二节.使用SQL查询(Part 2)

6)多表查询

1.等值连接

i).笛卡尔集会在下面条件下产生:
– 省略连接条件
– 连接条件无效
– 所有表中的所有行互相连接

ii).为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件。

#使用连接在多个表中查询数据
SELECT table1.column, table2.column FROM table1, table2
WHERE table1.column1 = table2.column2;

注解:
• 在 WHERE 子句中写入连接条件。
• 在表中有相同列时,在列名之前加上表名前缀加以区分
• 如果使用了表别名,则在select语句中需要使用表别名代替表名
• 使用表名前缀可以使用别名可以简化查询,提高执行效率

beauty表:
在这里插入图片描述
boys表:
在这里插入图片描述

SELECT beauty.id,name,boyName FROM beauty ,boys 
WHERE beauty.`boyfriend_id`=boys.id;

iii).连接 n个表,至少需要 n-1个连接条件

2.Join连接

● Joins子句用于组合数据库中两个或多个表的记录。JOIN是一种通过使用每个表共有的值来组合两个表中的字段的方法

● Join要使用ON 子句创建连接
—自然连接中是以具有相同名字的列为连接条件的
—可以使用 ON 子句指定额外的连接条件
—这个连接条件是与其它条件分开的
—ON 子句使语句具有更高的易读性
—使用 ON 子句创建多表连接
● 此外,添加显示条件还可以使用WHERE, USING 子句。其中USING子句,如果连接的两个表连接条件的两个列具有相同的名字的话可以使用USING

 SELECT ....  FROM .... LEFT JOIN  ...  USING () 
SELECT employee_id, city, department_name FROM employees e 
JOIN departments d ON d.department_id = e.department_id 
JOIN locations l ON d.location_id = l.location
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值