2013-06-26 3 views
0

Привет всем У меня есть следующий запрос:MySQL группы запросов по которой столбец отличается

SELECT count(e.id), count(c.id), e.Nid 
    FROM tbl1 e 
    LEFT JOIN tbl2 c 
    ON e.Uid = c.Uid 
    where e.at > '".$from."' 
    AND e.at < '".$to."' 
    GROUP BY e.Nid 

Так у меня есть две таблицы, один для того, когда пользователь заходит на мой сайт, а другой, когда он делает счет (его мой собственный монитор трафика сайта). Nid - это пользовательский агент, основанный на браузере.

Так что это говорит мне, сколько ppl появилось и сколько создано аккаунтов по типу браузера. Теперь моя проблема в том, что я хочу добавить предложение, такое как WHERE e.IP.

Пожалуйста, может кто-нибудь указать мне в правильном направлении с этим, я новичок в mysql.

ответ

1

Это должно выглядеть как этот

SELECT COUNT(DISTINCT e.IP), count(e.id), count(c.id), e.Nid 
FROM tbl1 e 
LEFT JOIN tbl2 c 
ON e.Uid = c.Uid 
where e.at > '".$from."' 
AND e.at < '".$to."' 
GROUP BY e.Nid 
0
SELECT DISTINCT(e.IP), count(e.id), count(c.id), e.Nid 
FROM tbl1 e 
LEFT JOIN tbl2 c 
ON e.Uid = c.Uid 
where e.at > '".$from."' 
AND e.at < '".$to."' 
GROUP BY e.Nid 

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

0

Другими словами, вы хотите подсчитать уникальные IP-адреса в tbl1. В этом случае вы не сможете присоединиться к tbl1 с tbl2 по адресу Uid, так как я полагаю, вы можете иметь несколько Uid для каждого IP-адреса в tbl1.