2012-03-08 25 views
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

クエリで何をしようとしていますか? –

答えて

0

のGROUP BYで試してみてください:

 

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を入力して同じレコードを取得してください。

関連する問題