面試時經常使用的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的