select where =的小问题

lvguangmin 2014-08-19 09:53:16
两张表,一个是教委的数据,一个是学校的数据

通过学校提供的准考证号到教委里查寻详细信息,但返回的结果都是重复的,请大神指导一下

我认为我的命令没有错的呀
select * from 教委数据,择校生
where 教委数据.fzkh = 择校生.准考证号

...全文
250 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkeeper 2014-08-20
  • 打赏
  • 举报
回复
最好截一些结果集或者做点数据发上来看一下,是怎么样的重复方式。如果是个别列重复的话那就要特殊处理一下,比如只取会重复的那些列然后用DISTINCT去重之类的,看具体的业务要求了
卖水果的net 版主 2014-08-20
  • 打赏
  • 举报
回复
这个应该是部分列是重复的,每条记录与其他记录应该不完全重。
中国风 2014-08-20
  • 打赏
  • 举报
回复
select * from 教委数据 as a where exists(select 1 from 择校生 where a.fzkh = 准考证号)
flyfishi 2014-08-20
  • 打赏
  • 举报
回复
select distinct 教委的表.准考证号 from 教委的表 join 学校的表 on 教委的表.准考证号 = 学校的表.准考证号 问题不明确,随便写的希望对你有帮助
nikolaichow 2014-08-20
  • 打赏
  • 举报
回复
查找sql重复值:http://www.cnblogs.com/shpchan/archive/2010/04/13/1710972.html
發糞塗牆 2014-08-19
  • 打赏
  • 举报
回复
关联之后会重复是很正常的, 1、不要用*,除非真的需要两表的所有数据,但是即使真的要,也最好显式写出来,并带上表(表别名)来标识,比如教委数据.fzkh这样。 2、如果以行为单位,并且完全重复,可以用distinct来去重。 3、如果两行中有任何一列不重复,那么不可以定义为重复数据,这时候可以用一些分析函数如max、min等去重 如果你还不懂,把表数据和期待结果列出来
菜鸟-攻城-狮 2014-08-19
  • 打赏
  • 举报
回复
正如一楼所说,关联之后确实容易产生重复的数据,当然产生重复数据的原因有许多,要依据不同的情况进行处理 1. 数据表的结构,有可能两张表的学生证号都不是唯一确定的,即不能把学生证号作为主键,其中任意一张表可能存在多条拥有相 同学生证号的行数据 2.有些数据列信息为空可能导致连接出现重复,空与空进行连接时将进行笛卡尔积运算,重复数据的产生将不可避免 3.上述两楼的总结性陈述非常正确,需要你认真理解一番,深邃一点如二楼,直白一点如一楼
--小F-- 2014-08-19
  • 打赏
  • 举报
回复
如果是一对多 或者多对多就有可能出现这样的状况。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧