2012-03-25 136 views
1

如何过滤器查询我需要通过nombre过滤我需要查询。如何通过在两个表上连接的字段进行过滤

查询=选择userstats.email作为电子邮件,计数(intento)为尝试,user.accesses作为来自userstats的访问内部用户加入user.email = userstats.email group by Email;

+---------------------------+----------+--------+ 
| email      | Attemps |accesses| 
+---------------------------+----------+--------+ 
| [email protected]  |  84 |  29 | 
| [email protected]   |  1 |  0 | 
| [email protected] |  1 |  0 | 
| [email protected] |  128 |  90 | 
+---------------------------+----------+--------+ 
4 rows in set (0.00 sec) 

第一张表。

+-------------+-------------+------+-----+-------------------+-----------------------------+ 
| Field  | Type  | Null | Key | Default   | Extra      | 
+-------------+-------------+------+-----+-------------------+-----------------------------+ 
| email  | varchar(55) | NO | PRI | NULL    |        | 
| names  | varchar(60) | NO |  | NULL    |        | 
| password | text  | NO |  | NULL    |        | 
| privileges | int(11)  | YES |  | 2     |        | 
| accesses | int(11)  | NO |  | 0     |        | 
| last_access | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
| logged  | int(11)  | YES |  | 0     |        | 
| ip_machine | varchar(35) | NO |  | 0     |        | 
| session_id | text  | NO |  | NULL    |        | 
| platform | text  | NO |  | NULL    |        | 
| status  | int(11)  | YES |  | 0     |        | 
+-------------+-------------+------+-----+-------------------+-----------------------------+ 

11行中(0.00秒)

第二个表。

+-------------+-------------+------+-----+-------------------+-----------------------------+ 
| Field  | Type  | Null | Key | Default   | Extra      | 
+-------------+-------------+------+-----+-------------------+-----------------------------+ 
| iduserStats | int(11)  | NO | PRI | NULL    | auto_increment    | 
| ip_machine | varchar(45) | NO |  | NULL    |        | 
| email  | varchar(45) | NO |  | NULL    |        | 
| intento  | int(11)  | YES |  | NULL    |        | 
| logged  | int(11)  | YES |  | NULL    |        | 
| fechaHora | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
+-------------+-------------+------+-----+-------------------+-----------------------------+ 
6 rows in set (0.00 sec) 

我需要绘制类似的一个表:

+---------------------------+----------+--------+ 
    | nombres     | intentos |logeos | 
    +---------------------------+----------+--------+ 
    | name      |  84 |  29 | 
    | name2      |  1 |  0 | 
    | name3      |  1 |  0 | 
    | name4      |  128 |  90 | 
    +---------------------------+----------+--------+ 
+1

不能修改查询返回的名称,而不是电子邮件?像这样: 选择userstats.names作为名称,将count(intento)作为Attempts,将user.accesses作为来自userstats的访问从user.email = userstats.email group by Email中加入内部用户; – 2012-03-25 09:55:47

+0

@Dmitriy Reznik: - 投票因为我也告诉相同... :) 但你忘记把**的名称**在**组的**条款.. – 2012-03-25 10:00:37

+0

@pratikgarg:如果'Email'是一个主键,您不必将'user.name'放入MySQL的'GROUP BY'中。但是如果你想遵循标准,你应该添加'user.accesses'和'user.name'。 – 2012-03-25 16:27:50

回答

1

那么你可以试戴

select names , --userstats.email as email, 
      count(intento) as Attempts, 
      user.accesses as Accesses 
    from userstats inner join user 
     on user.email = userstats.email 
    group by Email, names 
+0

你救了我的命。我很感谢 – geronimo76 2012-03-25 10:11:03

+0

和咨询邮件选择姓名,--userstats.email电子邮件, 计数(intento)的尝试,从userstats内 user.accesses作为是否访问 加入用户 用户.email = userstats.email其中user.email就像'[email protected]'; – geronimo76 2012-03-26 11:49:17

相关问题