数据库的SQL语句中,嵌套查询和连接查询有什么区别,说的详细的
3个回答
展开全部
在一个select
语句的where
子句或having
子句中嵌套另一个select
语句的查询称为嵌套查询,又称子查询。子查询是sql
语句的扩展,例如下:
select
*
from
table1
where
xh
in
(select
xh
from
table2)
语句的where
子句或having
子句中嵌套另一个select
语句的查询称为嵌套查询,又称子查询。子查询是sql
语句的扩展,例如下:
select
*
from
table1
where
xh
in
(select
xh
from
table2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只是单个的条件的时候,即只有一个连接条件的时候,使用两种方式都是一样的,但是,如果是多个条件的话,就要考虑一下效率了,一般这种情况下需要嵌套查询更能提高效率,因为连接查询是先要做笛卡尔积之后之后再筛选,而嵌套查询的话可以先筛选。比如看下面的查询区别:
/*列出在部门“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');
/*这种效率更高。*/
/*列出在部门“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');
/*这种效率更高。*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |