sql查询两个字段相同的记录

比如字段是id uid time这么一张表
id uid time
1 1 1
2 2 1
3 1 1
4 1 2
5 1 3

我想查询的是uid重复并且time也是重复的记录,比如上面的查出来的是 id = 1 3 的两条记录。

两种方法,一种是查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:

select uid, time from ztest GROUP BY uid, time having count(*)>1;

查出结果是

    uid time

    1     1

还有一种是查询你指定信息,可以查询出ID信息:

select  distinct a.id, a.uid, a.time from ztest a join ztest b on a.id != b.id where a.uid = b.uid and a.time = b.time;

查询结果是:

id uid time
1   1   1
3   1   1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-06
sql查询两个字段相同的记录?1、查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:
1select uid, time from ztest GROUP BY uid, time having count(*)>1;
查出结果是
uid time
1 1
2、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
3、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
第2个回答  2018-04-05

1、查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:

1select uid, time from ztest GROUP BY uid, time having count(*)>1;

查出结果是

uid time

1     1

2、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

3、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

本回答被网友采纳
第3个回答  2021-04-07
1。先通过mssqlserver来学习,因为mssql有事件探查器,所有访问数据库的语句都会显示出来,mysql也有,但是比mssql麻烦,所以学习嘛,选mssql;

2。找一个商用的进销存软件,或者erp软件或者财务软件,只要是连mssql都都行。

3。打开事件探查器,监听。

4。做录入,更新,删除等操作,对比自己已学习的内容,提升经验。

5。尽量多做数据模拟,最好软件当中每个模块都有数据,这样你在查询软件某个功能是时候,就能通过事件探查器获取到查询语句。

6。把查询语句放在查询分析中,分析写法,不明白的地方查百度,研究明白了以后尝试自己模拟这种写法查询其他数据库表。

7。及时做好笔记。

这样一套下来应该就差触发器和存储过程了。

触发器和存储过程我个人觉得是需要先学写法的,cdsn上很多,会了简单写法以后,最好是在开发过程中,实践着写触发器和存储过程。

1. 库操作(创建,使用,删除,改名等)

2. 表/视图操作(创建,删除,复制,清空,查看)

3. 字段操作(主键操作,字段类型,添加字段,删除字段,修改字段,查看字段,约束操作和字段默认值)

4. INSERT(增加),SELECT(查询),UPDATE(修改),DELETE(删除)

其中 SELECT 查询还要重点掌握如下知识点:

a. 基础字段查询及CASE-WHEN/IF等条件查询

b. DISTINCT去重查询(理解它与GROUP BY的区别)

c. WHERE条件中的 AND,OR,NOT,LIKE,BETWEEN,IS NULL/IS NOT NULL,REGEXP等

d. ORDER BY排序

e. 使用MAX,MIN,SUM,AVG,COUNT聚合函数,及配合GROUP BY实现分组查询(WITH ROLLUP也可顺便学习下,配合GROUP BY效果更佳)

f. 掌握分组后的条件过滤HAVING的用法

g. 连接查询(SQL92和SQL99内连接,左右外连接,全外连接,自连接,4交叉连接)

h. 子查询(SELECT中的子查询,WHERE中的子查询,FROM中的子查询,嵌套递归子查询)

i. LIMIT(常用于分页查询或查询指定条数)

j. UNION/UNION ALL(联合查询)

h. 各种函数(日期时间,字符串截取,类型转换,四舍五入等)

开发必备:

1. 事务(隔离级别)和锁处理机制

2. 事件和触发器的使用(非必须,有余力可学习)

3. 自定义函数和存储过程的使用(非必须,有余力可学习)

性能优化必备:

1. 索引的各种用法

2. EXPLAIN执行计划分析

3. 二进制及慢查询日志分析

运维/DBA必备:

1. 安装数据库服务端

2. 权限分配与收回

3. 各种日志分析

4. 参数调优

5. 备份/恢复/查找数据

6. 锁表/解锁表

7. 配合开发实现分库分表,读写分离等
第4个回答  2021-04-07
1、查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:
1select uid, time from ztest GROUP BY uid, time having count(*)>1;
查出结果是
uid time
1 1

2、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
3、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
相似回答