数据库的SQL语句中,嵌套查询和连接查询有什么区别,说的详细的

 我来答
庾佳表羲
2019-09-18 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:702万
展开全部
嵌套就是类似IN语句,比如select
*
from
table1
where
id
in
(select
id
from
table2),连接就是用JOIN把2表根据一个字段进行数据连接,区别就是连接查询效率比嵌套高,而且JOIN可以通过改变JOIN先后顺序,先扫描记录少的表,从而提高速度,如果嵌套会固定先搜索子查询
寇余馥蒿荃
游戏玩家

2019-08-30 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:653万
展开全部
在一个select
语句的where
子句或having
子句中嵌套另一个select
语句的查询称为嵌套查询,又称子查询。子查询是sql
语句的扩展,例如下:
select
*
from
table1
where
xh
in
(select
xh
from
table2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
满邦米耀
2019-09-08 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:829万
展开全部
如果只是单个的条件的时候,即只有一个连接条件的时候,使用两种方式都是一样的,但是,如果是多个条件的话,就要考虑一下效率了,一般这种情况下需要嵌套查询更能提高效率,因为连接查询是先要做笛卡尔积之后之后再筛选,而嵌套查询的话可以先筛选。比如看下面的查询区别:
/*列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。*/
SELECT
e.ename
FROM
emp
e
JOIN
dept
d
ON
e.deptno
=
d.deptno
AND
d.dname='SALES';
SELECT
e.ename
FROM
emp
e,dept
d
WHERE
e.deptno
=
d.deptno
AND
d.dname='SALES';
select
ename
from
emp
where
deptno=(select
deptno
from
dept
where
dname='SALES');
/*这种效率更高。*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式