mysql
2012-03-08 25 views 0 likes 
0

我有一个查询在选择记录时可以处理多个条件。避免在MySQL中输出相同的记录

select 
    uid, uid2, up, 
    datediff(CURRENT_TIMESTAMP, tim) \"dt\", 
    id, behind, sid, spid 
from Z_uup, Z_snoop, Z_wshop 
where 
    (Z_wshop.sid='5555' or Z_snoop.id='5555') and 
    (
     Z_uup.uid=Z_snoop.id or 
     Z_uup.uid2=Z_snoop.id or 
     Z_uup.uid=Z_snoop.behind or 
     Z_uup.uid2=Z_snoop.behind or 
     Z_uup.pid=Z_wshop.spid 
    ) 
order by Z_uup.tim desc; 

Z_uup只有一个条目,但它似乎我得到的一样,反复15次为出放。为什么会发生这种情况,我该如何解决这个问题。

+0

您的查询尝试做什么? – 2012-03-08 08:59:23

回答

0

与GROUP尝试:

 

select uid,uid2,up,datediff(CURRENT_TIMESTAMP,tim) \"dt\",id,behind,sid, 
spid from Z_uup,Z_snoop,Z_wshop where (Z_wshop.sid='5555' or Z_snoop.id='5555') 
and (Z_uup.uid=Z_snoop.id or Z_uup.uid2=Z_snoop.id or 
Z_uup.uid=Z_snoop.behind or Z_uup.uid2=Z_snoop.behind or Z_uup.pid=Z_wshop.spid) 
group by uid order by Z_uup.tim 
desc; 
 

希望它可以帮助

1

你尝试使用DISTINCT?

SELECT DISTINCT field1, field2, ... FROM table1... 

这样重复记录将不会显示。

如果速度变慢,请尝试使用来自Z_uup的字段组。

0

在你写的GROUP BY中查询你获得同样的记录。

相关问题