[英]Avoid multiple outputs of same record in 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個重復的輸出。 為什么會這樣,我該如何解決。
您嘗試使用DISTINCT嗎?
SELECT DISTINCT field1, field2, ... FROM table1...
這樣,重復記錄將不會顯示。
如果速度變慢,請嘗試使用Z_uup中的字段進行分組。
嘗試使用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;
希望能幫助到你
在查詢中寫入GROUP BY
,您得到的記錄相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.