mysql相關面試題(一)

 

一、主鍵自增,姓名字段重複。刪除重複的姓名數據,只留一條

-- Every derived table must have its own alias 子查詢要起別名

-- 思路:分組後只會顯示一條,而後根據這一條的id 去not in 刪除
DELETE FROM test WHERE id NOT IN (SELECT id FROM (SELECT * FROM test GROUP BY NAME) b);

二、主鍵自增,主鍵不連續,查出某個主鍵的下一條數據

-- searchId爲要查詢的id

-- 思路:先查詢出大於searchId的全部數據,取最小的,即爲searchId的下一個id。
--      根據這個id 查詢出該數據。

SELECT * FROM test WHERE id = (SELECT MIN(id) FROM test WHERE id > searchId);

三、有兩張表,表A幾條數據,表B幾條數據,表A左鏈接表B後會查詢出幾條數據

左鏈接爲保全左表數據,即便右表中沒有數據,也會被null填充,並展現出來spa

右鏈接爲保全右表數據,即便左表中沒有數據,也會被null填充,並展現出來code

由上得出,使用左鏈接,左表有幾條數據就會顯示幾條數據,與右表數據無關。右鏈接同理blog

相關文章
相關標籤/搜索