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