您现在的位置是:主页 > news > 手机网站建立免费平台/发布会直播平台
手机网站建立免费平台/发布会直播平台
admin2025/5/12 12:35:11【news】
简介手机网站建立免费平台,发布会直播平台,网站优化关键词是怎么做的,如何在百度做网站【面试题】这是某互联网公司的面试题。表a和表b如下,相同字段为ID,如何通过查询完成下列各项任务?问题1:表a、表b的交集问题2:表a、表b的并集问题3:存在表a、但不存在表b的元素,同时存在表b,但不…
【面试题】这是某互联网公司的面试题。
表a和表b如下,相同字段为ID,如何通过查询完成下列各项任务?
问题1:表a、表b的交集
问题2:表a、表b的并集
问题3:存在表a、但不存在表b的元素,同时存在表b,但不存在表a的元素
【问题1解题思路】:
表a、表b的交集
此题主要考察的是表与表之间内部联结方法,用inner…join…on语句联结,此题SQL代码为:
select a.ID
from 表a as a inner join 表b as b
on a.ID=b.ID;
问题1 SQL运行结果:
ID |
2 |
3 |
【本题考点】
1、内部联结的应用
内部联结,用”…inner…join … on 条件…“语句,内部联结取两个表的交集,图示如下:中间的部分为交集:
此题的交集为:
2、表别名的用法
表的别名,用 as 定义别名,缩短了SQL语句,让查询语句比较简洁,并且可以多次使用。
【问题2解题思路】:
表a、表b的并集
此题考察的是表的并集union的用法,使用union把两个表并起来。
select *
from 表a
union
select *
from 表b;
问题2 SQL运行结果
ID |
1 |
2 |
3 |
4 |
5 |
6 |
【本题考点】
1、此题重点考察的是组合查询的union的用法
2、union的使用规则:
1) 必须有2个以上的select 语句组成,中间用union联结
2) union前后的select 语句必须是相同的列,表达式、聚集函数
3、union与union all的区别(如下图示)
union把查询结果相同的行自动去除了,本题用的union,表a、表b中共同的元素2、3,各保留了一个。union all 返回满足所有条件的元素。
【问题3解题思路】:
存在表a、但不存在表b的元素,同时存在表b,但不存在表a的元素
这个题有两种解法
(一)用left join、right join。详细用法见内部、外部联结。先选出存在表a,不存在表b的元素
select a.ID
from 表a left join 表b
on a.ID=b.ID
where b.ID is null;
sql运行结果:
ID |
1 |
4 |
即:
然后再选出存在表b,不存在表a的元素
select b.ID
from 表a right join 表b
on a.ID=b.ID
where a.ID is null;
sql运行结果
ID |
5 |
6 |
即:
最后用union合并在一起
select a.ID
from 表a left join 表b
on a.ID=b.ID
where b.ID is null
union
select b.ID
from 表a right join 表b
on a.ID=b.ID
where a.ID is null;
sql运行结果
ID |
1 |
4 |
5 |
6 |
(二)用not 排除法
1、“存在表a,但不存在表b”,把属于表b的元素排除掉。
select *
from 表a
where ID not in (select ID from 表b);
2、题意中要求“…… 同时 ……“,把存在表a,不存在表b的元素,”与“存在表b,不存在表a的元素”的两个并列条件,用union联结起来
select *
from 表a
where ID not in (select ID from 表b)
union
select *
from 表b
where ID not in (select ID from 表a);
SQL运行结果
ID |
1 |
4 |
5 |
6 |
【本题考点】
1、not 排除后面的条件,一般与in联用,in指定范围
2、union的用法,见问题2,此题的图示为:
3、子查询,从里到外处理,里面的查询结果是外层的条件。
【此面试题的总结】:
此面试题比较简单,主要考察表的内联结、表的并集,子查询、not in的用法,虽然比较简单,但是是SQL的最基础的用法,需要打实功底。
⬇️点击「阅读原文」
免费报名 数据分析训练营