关于SQL数据库表中字段重复的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:11:32
sql = "SELECT a.*,u.*,t.* from dnt_attachments as a Left Join dnt_users as u ON a.uid=u.uid left join dnt_topics as t on a.tid=t.tid order by a.postdatetime desc
其实中表dnt_attachments 中的uid有重复的值,怎么让它输出显示时,只显示一个啊?

SELECT a.*,u.*,t.* from (((dnt_attachments as a inner join (select distinct uid from a) TT on dnt_attachments.uid=TT.uid)
Left Join dnt_users as u ON a.uid=u.uid)
left join dnt_topics as t on a.tid=t.tid)
order by a.postdatetime desc
这样应该可以了!~

select distinct a.*,u.*,t.* from dnt_attachments as a Left Join dnt_users as u ON a.uid=u.uid left join dnt_topics as t on a.tid=t.tid order by a.postdatetime desc

select distinct 字段名 from [表名]语句即可生成不重复记录

首先觉得楼上两个朋友理解错了楼主的意思。
我认为结果集并非是有完全相同的数据,楼主是想说,一个UID只显示一条。这样的结果需要一个前提,三张表中uid都无重复。
如果A表中第个UID只有一条数据,而U表或T表中一个UID对应多条数据,则结果集中相同UID会出现多条数据。楼主可再详细说明一下需求。

distinct哦!!!

好象不是distinct那么简单,如果UID有重复,那么你如何知道你想要那一条数据?