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

相关文章
相关标签/搜索