0

次のデータを持つMySQLテーブルがあります。

surveyid | staff  | username | ipaddress | rating  | comments 
---------|--------|----------|-----------|---------|----------
0        | staff1 | user1    | 1.1.1.1   | 10      | none
1        | staff2 | user2    | 1.2.1.1   | 5       | none
2        | staff2 | user3    | 1.2.1.1   | 10      | none
3        | staff2 | user2    | 1.2.1.1   | 6       | none
4        | staff3 | user4    | 1.1.1.51  | 10      | none
5        | staff4 | user3    | 1.21.12.1 | 9       | none
6        | staff5 | user2    | 1.12.1.1  | 10      | none

IPアドレスが同じスタッフの複数のユーザーに使用されている場合にのみ、調査ID、スタッフ、ユーザー名、およびIPアドレスを選択するクエリが必要です。

基本的に、複数のユーザーが同じIPアドレスから送信したスタッフを見つけたいと思っています。

以下を試してみましたが、うまくいきません。

SELECT * FROM `comment_data` CD 
INNER JOIN
(SELECT `ipaddress`, COUNT(DISTINCT `staff`)
FROM `comment_data` GROUP BY `ipaddress` HAVING COUNT(DISTINCT `staff`) > 1 )
USECOUNT ON USECOUNT.`ipaddress` = CD.`ipaddress`

次のクエリも試しました。

SELECT * FROM `commend_data` WHERE `staff`+`ipaddress` IN
(SELECT `staff`+`ipaddress` FROM `comment_data` GROUP BY `staff`, `ipaddress`
HAVING COUNT(`surveyid`) > 1) 

また、すべての重複を確実に表示したいのですが、カウントだけを表示したくありません。

さらに情報が必要な場合は、お問い合わせください。

ありがとうポール

4

2 に答える 2

4
select surveyid, staff, username, ipaddress
from table1
where ipaddress+staff in 
(
select ipaddress+staff
from table1
group by ipaddress,staff
having count(surveyid)>1
)

SQL フィドル

于 2013-07-11T14:01:27.177 に答える