您现在的位置是:主页 > news > 手机网站建立免费平台/发布会直播平台

手机网站建立免费平台/发布会直播平台

admin2025/5/12 12:35:11news

简介手机网站建立免费平台,发布会直播平台,网站优化关键词是怎么做的,如何在百度做网站【面试题】这是某互联网公司的面试题。表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,但不…

5ac1ac43007f5043154b319f5ed8f2a8.png

【面试题】这是某互联网公司的面试题。

表a和表b如下,相同字段为ID,如何通过查询完成下列各项任务?

df9ff7eac0cfc29b5b65654d8e620793.png

问题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 条件…“语句,内部联结取两个表的交集,图示如下:中间的部分为交集:

c0aa1e58e95edfd38b8d5c66edf0d862.png

   此题的交集为:

40056425f3a8b80b6a75c014ee61103f.png

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 返回满足所有条件的元素。

b664d36262b675058af0941fd94f7d52.png

【问题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

即:

1afa078f1ecbb0a7ac5552301800a259.png

然后再选出存在表b,不存在表a的元素

select b.ID
from 表a right join 表b
on a.ID=b.ID
where a.ID is null;

sql运行结果

ID

5

6

即:

bc3742fd059b5282ad0ebf783e71e9ef.png

最后用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,此题的图示为:

d9af4ed8d884e4d8f6e5a138f5812617.png

3、子查询,从里到外处理,里面的查询结果是外层的条件。

【此面试题的总结】:

此面试题比较简单,主要考察表的内联结、表的并集,子查询、not in的用法,虽然比较简单,但是是SQL的最基础的用法,需要打实功底。

7760e34383f77c58a4ec16e49a99a4b6.png

444054f9895daf482bd603d554cd7eb1.png

 ⬇️点击「阅读原文」

 免费报名 数据分析训练营