首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Sql多表联合查询出现重复记录的有关问题

2012-12-27 
Sql多表联合查询出现重复记录的问题,我有2张表A,S,A表是主表,A表中有的数据B表不一定有现在联合查询SELECT

Sql多表联合查询出现重复记录的问题
,我有2张表A,S,A表是主表,A表中有的数据B表不一定有
现在联合查询
SELECT    
 a.StuId,  s.*
FROM         SourceStuAndCoursearrange AS a  left  JOIN
                    dbo.Scores AS s  on  s.stuid=a.stuid
                    where a.stuid=9678 

正常情况应该有8条记录的,但是S表有3条记录,他就会出现24条也就是8的3倍的记录,
而且S表的字段会重复显示8变,就想S表是主表一样
[最优解释]
如果关联的时候没有用主键,那重复数据是有可能的,因为主键本来就是唯一标识一条数据。而没用到,就证明标识不了。
[其他解释]
on 那里你的主键没写全吧。
[其他解释]

引用:
on 那里你的主键没写全吧。

都不是主键,他们2个的主键不一样的
[其他解释]
SELECT    
 a.StuId,  s.*
FROM         SourceStuAndCoursearrange AS a  inner  JOIN
                    dbo.Scores AS s  on  s.stuid=a.stuid and s.coursearrangeid=a.coursearrangeid
                    where a.stuid=9678 
这样的话就只有3条了
就是AA表的数据不可以重复,如果stuid和coursearrangeid这2个字段在B表有就显示,没有就显示为空
[其他解释]
哦了,换成left join就可以了

引用:
如果关联的时候没有用主键,那重复数据是有可能的,因为主键本来就是唯一标识一条数据。而没用到,就证明标识不了。


给了启发,,谢谢

热点排行