我有这2张桌子。

Loging Log

| id | datetime   | iduser |
|----|------------|--------|
| 1  | 23/09/2016 | 1      |
| 2  | 22/09/2016 | 1      |
| 2  | 22/09/2016 | 2      |

Contacts

| id | name    | created    | iduser |
|----|---------|------------|--------|
| 1  | John    | 24/09/2016 | 1      |
| 2  | Carl    | 24/09/2016 | 1      |
| 3  | Michael | 20/09/2016 | 1      |
| 4  | David   | 23/09/2016 | 2      |


基本上,我想从每个用户的最后一次登录以来从联系人表中获取所有联系人。

例如。用户id = 1的上次登录时间为23/09/2016,所以我想获取2016年9月23日之后的联系人数,并获取自上次登录以来的天数,所需的输出如下:

 Output

 | last login | days since last login | number of contacts | id user |
 |------------|-----------------------|--------------------|---------|
 | 23/09/2016 | 1                     | 2                  | 1       |
 | 22/09/2016 | 2                     | 1                  | 2       |


提前致谢。

编辑:这两个值都是日期时间字段

最佳答案

尝试这个

CREATE TABLE login_log (
  id INT NOT NULL AUTO_INCREMENT,
  datetime DATETIME NULL,
  iduser INT NULL,
  PRIMARY KEY (id));

CREATE TABLE contacts (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(45) NULL,
  created DATETIME NULL,
  iduser INT NULL,
  PRIMARY KEY (`id`));

INSERT INTO  login_log (datetime, iduser) VALUES ('2016-9-23', '1');
INSERT INTO  login_log (datetime, iduser) VALUES ('2016-9-22', '1');
INSERT INTO  login_log (datetime, iduser) VALUES ('2016-9-22', '2');

INSERT INTO contacts (name, created, iduser) VALUES ('john', '2016-9-24', '1');
INSERT INTO contacts (name, created, iduser) VALUES ('carl', '2016-9-24', '1');
INSERT INTO contacts (name, created, iduser) VALUES ('michael', '2016-9-20', '1');
INSERT INTO contacts (name, created, iduser) VALUES ('david', '2016-9-23', '2');

SELECT
    DATE(MAX(datetime)) 'last login',
    DATEDIFF(NOW(), MAX(datetime)) 'days since last login',
    (SELECT
            COUNT(*)
        FROM
            contacts c
        WHERE
            created > MAX(l.datetime)
                AND c.iduser = l.iduser) 'number of contacts',
    l.iduser 'id user'
FROM
    login_log l
GROUP BY l.iduser


我得到的结果是

php - 如何写这个MySQL查询计数?-LMLPHP

关于php - 如何写这个MySQL查询计数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39676189/

10-08 22:39
查看更多