面试时经常使用的sql问题面试
表A有字段aid等,表B有字段bid等sql
A表spa
字段名ci |
aid开发 |
其余字段略it |
记录1table |
1效率 |
*项目 |
记录2查询 |
2 |
* |
记录3 |
3 |
* |
B表
字段名 |
bid |
其余字段略 |
记录1 |
2 |
* |
记录2 |
3 |
* |
记录3 |
4 |
* |
SELECT a.aid,b.bid,……
FROM A a
LEFT JOIN B b ON a.aid=b.bid
查询结果中有那些行,每行的列都是什么样子的
【主要考察:对左链接的了解,这是基本技能】
有user表记录了系统中的用户信息
user_id |
user_name |
province |
city |
1 |
ebola |
辽宁省 |
沈阳市 |
2 |
camus |
辽宁省 |
大连市 |
3 |
leon |
辽宁省 |
大连市 |
4 |
tyler |
辽宁省 |
沈阳市 |
5 |
oven |
辽宁省 |
大连市 |
6 |
susie |
吉林省 |
长春市 |
7 |
nancy |
吉林省 |
吉林市 |
8 |
lucy |
吉林省 |
四平市 |
9 |
tom |
河北省 |
石家庄市 |
10 |
lily |
河北省 |
秦皇岛市 |
11 |
wendy |
河北省 |
保定市 |
12 |
andy |
河北省 |
唐山市 |
13 |
hard |
河北省 |
张家口市 |
14 |
vance |
河北省 |
廊坊市 |
请写SQL查询表中的知足如下要求的省份
一、 很多于5个用户
二、 省份所属用户属于至少3个城市
例如:
辽宁省 不知足第二个条件,只属于沈阳市大连市两个城市
吉林省 不知足第一个条件,只有3个用户
河北省 知足第一个条件有6个用户知足第二个条件 有6个城市
【深度考察sql能力,以面试的紧张情形,目前只有一我的答出来,是一个作过dba的开发】
表有两列id,name,其中id是主键,name是名称,在项目刚开始时name能够重复,当上线运行一段时间后,发现name必须惟一才符合需求,
但愿删除掉name重复的,只保留name相同的行中id最小的行,
要求
一、必须使用一个SQL,即 不能多个SQL依次执行来达到目的
二、当name重复时,只能保留id最小的行,当name不重复时,直接保留。
三、不要求效率
即若是有两行(1,张三),(3,张三)则必须删掉id=3的。保留id=1的