2013-07-11 3 views
0

У меня есть таблица MySQL, которая имеет следующие данные.Не удается выполнить MySQL Query

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 

Я хотел запрос, который будет выбрать surveyid, персонал, имя пользователя и IPAddress только тогда, когда 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` 

Я также пробовал следующий запрос.

Кроме того, я хочу, чтобы убедиться, что я показываю все дубликаты, и я не хочу, чтобы отобразить только значение.

Если вам нужна дополнительная информация, пожалуйста, спрашивайте.

Благодаря Пол

+2

что вы пробовали? – Cfreak

ответ

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 FIDDLE

+0

Спасибо за быстрый ответ, я попробовал это, но он вернулся 0. –

0
SELECT surveyid, 
     PT.staff, 
     username, 
     PT.ipaddress 
    FROM PaulTable PT 
     INNER JOIN 
     (
      SELECT ipaddress, staff 
      FROM PaulTable 
        GROUP BY ipaddress, staff 
        HAVING COUNT(DISTINCT username) > 1 
     ) USECOUNT 
      ON USECOUNT.ipaddress = PT.ipaddress 
      AND USECOUNT.staff = PT.staff 
+0

Пробовал это, но я получаю 0 результатов. –

+0

@PaulCreative Я не совсем «понял», что вам нужно: я отредактировал свой ответ, чтобы предоставить вам то, что (я думаю) вам нужно, сейчас. Есть тестовый экземпляр на http://sqlfiddle.com/#!2/30e1d/4 – Curt

Смежные вопросы