Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不能在没有子查询的情况下构造mysql select查询_Mysql - Fatal编程技术网

不能在没有子查询的情况下构造mysql select查询

不能在没有子查询的情况下构造mysql select查询,mysql,Mysql,我有一张桌子 CREATE TABLE logs( id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, ip INT(11) UNSIGNED NOT NULL, `date` TIMESTAMP, `time` INT(11) UNSIGNED NOT NULL, referrer VARCHAR(255) NOT NULL, uri VARCHAR(255) NOT NULL, PRIMARY KEY (id), ) 我需要

我有一张桌子

CREATE TABLE logs(
  id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  ip INT(11) UNSIGNED NOT NULL,
  `date` TIMESTAMP,
  `time` INT(11) UNSIGNED NOT NULL,
  referrer VARCHAR(255) NOT NULL,
  uri VARCHAR(255) NOT NULL,
  PRIMARY KEY (id),
)
我需要获取以下数据并按IP分组:

  • 知识产权
  • IP的第一个推荐人(日期为min.)
  • 上次访问IP的uri
  • 唯一URI的数量
是否可以在没有子查询的情况下编写这样的查询

我的子查询解决方案:

SELECT
    `logs`.`ip`,
    (SELECT
        `tmp`.`referrer`
    FROM
        `logs` AS `tmp`
    WHERE
        `tmp`.`ip` = `logs`.`ip`
    ORDER BY `tmp`.`date`
    LIMIT 1) 'referrer',
    (SELECT
        `tmp`.`uri`
    FROM
        `logs` AS `tmp`
    WHERE
        `tmp`.`ip` = `logs`.`ip`
    ORDER BY
        `tmp`.`date` DESC
    LIMIT 1) 'uri',
    COUNT(DISTINCT (`logs`.`uri`)) 'urls'
FROM
    `logs`
GROUP BY
    `logs`.`ip`
但是,这不允许按tmp.date下单。如果绝对需要,请在注释中告诉我,我将更新此代码以允许这样做

select
    `logs`.`ip`,
    `tmp`.`referrer`
    `tmp`.`uri`
    count(distinct `logs`.`uri`)) as `urls`
from `logs`
left join `tmp` on `tmp`.`ip`=`logs`.`ip`
group by `logs`.`ip`