sql连接查询

/*含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行
发生原因: 没有有效的连接条件如何避免:
           添加有效的连接条件

分类:
按年代分类:sq192标i售sg199标准[推荐]按功能分类:内连接:
等值连接非等值连接自连接
外连接:
左外连接右外连接全外连接
交叉连按
*/
#案例1 查询女神名和男生名

 SELECT NAME, boyName
 FROM boys,beauty
WHERE beauty.boyfriend_id =boys.id;
#案例2 查询员工名和对应的部门名
SELECT last_name,department_name
FROM employees,departments
WHERE employees.`department_id` =department.`department_id`;
#查询员工名,工种号,工种名
 SELECT employees.last_name,employees.job_id,jobs.job_title
 FROM employees AS e,jobs AS j
 WHERE e.`job_id` = j.`job_id`;
/*
sg199语法
语法:
select 查询列表
from 表1 别名[连接类型]
inner join 表2 别名
on 连接条件
[where 筛选条件]
group by 分组]
having筛选条件
order 排列列表
分类:内连接(h) : inner
外连接
左外(女):left [outer]台外(女): right [outer全外: full [outer]交又连接: cross
*/
#1.等值连接
#案例1,查询员工名,部门名
SELECT last_name,department_name
FROM employees e
INNER JOIN departments d
ON e.`department_id`= d.`department_id`;

#案例2,查询名字中包含e的员工名和工种名(添加筛选)

SELECT last_name,job_title
FROM employees e
INNER JOIN jobs j
ON e.`job_id` =j.`job_id`
WHERE e.`last_name` LIKE '%e%';


#3.查询部门个数>3的城市名和部门个数,(添加分组+筛选)
SELECT city,COUNT(*) 部门个数
FROM departments D
INNER JOIN locations L
ON D.`location_id` =L.`location_id`
GROUP BY city
HAVING COUNT(*)>3;
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸥总

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值