0

私はこの条項を持っています:

SELECT count(*) FROM imagetags 
INNER JOIN userimages ON imagetags.imageid = userimages.id        
WHERE privacy='public' 
&& (tag='cars' || description LIKE '%cars%' || title LIKE '%cars%')     
GROUP BY imageid

2つのテーブル(imagetags、userimages)からすべての可能な場所(tag、description、title)で「cars」を検索し、それらの結果となる画像(基本的には行)の数を返します。

問題は、これらの場所の2つ以上で成功した場合、countは重複した結果を返すことです。例えば。タグと同じ画像の説明に車がある場合、1ではなくcount = 2です。SELECTimageid(...)を実行しても、それは発生しません。GROUP BYがカウントで正常に機能していないようですが、何か提案はありますか?

4

3 に答える 3

1

DISTINCTクエリで使用:

SELECT COUNT(DISTINCT userimages.id) FROM imagetags 
INNER JOIN userimages ON imagetags.imageid = userimages.id        
WHERE privacy='public' 
&& (tag='cars' || description LIKE '%cars%' || title LIKE '%cars%')

のドキュメントCOUNT

于 2012-09-08T14:42:03.943 に答える
0

使ってみましたかSELECT COUNT(imageid) FROM imagetags ...

于 2012-09-08T14:33:45.940 に答える
0

これを試して:

SELECT COUNT(userimages.id) ...
于 2012-09-08T14:36:21.663 に答える