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

SQL数据库两个表连接,重复数据的有关问题?请高手帮忙!

2012-01-28 
SQL数据库两个表连接,重复数据的问题?请高手帮忙!!!!有两个数据库如下:数据库A字段1字段2字段3字段4数据库

SQL数据库两个表连接,重复数据的问题?请高手帮忙!!!!
有两个数据库如下:            
数据库A            
字段1         字段2         字段3         字段4            
数据库B            
字段1         字段2         字段3         字段4            
A库中字段3与B库中字段3是相同的。A库中字段3是有重复的。            
通过查询,希望得到A.1,A.2,A.3,b.4字段组成的结果集。            
 
自己做了下:            
select         A.1,A.2,A.3,B.4         from         A,B         where         A.3=B.3            
结果中有一些A.3重复的记录.            
请教高手,可以用SQL查询语句得到A库中不重复的记录与B库中的B.4字段相连接的结果集吗?能不用临时表实现吗?求SQL语句!            


[解决办法]
数据表A
假设字段3里面肯定有字段1的最大或最小值.

select M.字段1 , M.字段2 , M.字段3 , B.字段4 from
(
select A.* from A,
(select 字段3 , min(字段1) as 字段1 from A group by 字段3) T
where A.字段3 = T.字段3 and A.字段1 = T.字段1
) M,B
where M.字段3 = B.字段3
[解决办法]
那就要看你的表中的数据了,
如果字段1也相等,就取字段2的最大或最小,

如果字段1 和字段2都相等就用:

select D.*,B.[字段4] from
(select distinct 字段1, 字段2,字段3 from A) D left join B
on D.字段3=B.字段3
[解决办法]
对,上面说得对.

select M.字段1 , M.字段2 , M.字段3 , B.字段4 from
(
select A.* from A,
(select 字段3 , min(字段1) 字段1 , min(字段2) 字段2 from A group by 字段3) T
where A.字段3 = T.字段3 and A.字段1 = T.字段1 and A.字段2 = T.字段2
) M,B
where M.字段3 = B.字段3

热点排行