Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
Php 从子查询结果中获取最大值_Php_Mysql - Fatal编程技术网

Php 从子查询结果中获取最大值

Php 从子查询结果中获取最大值,php,mysql,Php,Mysql,我有一个查询,它连接3个表并返回按页码排序的结果,这样我一次只能查看一个页面及其通过数组的输出 这是我的问题 select wo.*, (select count(distinct order) from (SELECT * FROM `movements` LEFT JOIN `classes` ON `movements`.`class_id` = `classes`.`class_id` LEFT

我有一个查询,它连接3个表并返回按页码排序的结果,这样我一次只能查看一个页面及其通过数组的输出

这是我的问题

select wo.*,
   (select count(distinct order)
    from (SELECT *
          FROM `movements` LEFT JOIN
               `classes`
               ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
               `clients`
               ON `movements`.`class_id` = `clients`.`class_id`
          WHERE `classes`.`class_id` = '$class_id' 
         ) wo2
    where wo2.order <= wo.order
   ) as pagenum
from (SELECT *
  FROM `movements` LEFT JOIN
       `classes`
        ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
        `clients`
       ON `movements`.`class_id` = `clients`.`class_id`
   WHERE `classes`.`class_id` = '$class_id' 
  ) wo
order by pagenum
还是有更好的方法来实现这一点

下面是此查询结果的屏幕截图。我现在有下一个和上一个链接,当我在这些结果中到达查询页面5的末尾时,会将用户从一页转到另一页。我希望PHP不再提供转到下一页的选项。因此,我必须以某种方式获得每个查询的MAXpagenum的值


可以通过包含另一个相关子查询来获取maxpage num:

select wo.*,
       (select count(distinct order)
        from (SELECT *
              FROM `movements` LEFT JOIN
                   `classes`
                   ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
                   `clients`
                   ON `movements`.`class_id` = `clients`.`class_id`
                   WHERE `classes`.`class_id` = '$class_id'
             ) wo2
        where wo2.order <= wo.order
       ) as pagenum,
       (select count(distinct order)
        from (SELECT *
              FROM `movements` LEFT JOIN
                   `classes`
                   ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
                   `clients`
                   ON `movements`.`class_id` = `clients`.`class_id`
                   WHERE `classes`.`class_id` = '$class_id'
             ) wo2
       ) as maxpages          
 from (SELECT *
       FROM `movements` LEFT JOIN
            `classes`
            ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
            `clients`
            ON `movements`.`class_id` = `clients`.`class_id`
       WHERE `classes`.`class_id` = '$class_id'
      ) wo
order by pagenum 
select wo.*,
       (select count(distinct order)
        from (SELECT *
              FROM `movements` LEFT JOIN
                   `classes`
                   ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
                   `clients`
                   ON `movements`.`class_id` = `clients`.`class_id`
                   WHERE `classes`.`class_id` = '$class_id'
             ) wo2
        where wo2.order <= wo.order
       ) as pagenum,
       (select count(distinct order)
        from (SELECT *
              FROM `movements` LEFT JOIN
                   `classes`
                   ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
                   `clients`
                   ON `movements`.`class_id` = `clients`.`class_id`
                   WHERE `classes`.`class_id` = '$class_id'
             ) wo2
       ) as maxpages          
 from (SELECT *
       FROM `movements` LEFT JOIN
            `classes`
            ON `movements`.`class_id` = `classes`.`class_id` LEFT JOIN
            `clients`
            ON `movements`.`class_id` = `clients`.`class_id`
       WHERE `classes`.`class_id` = '$class_id'
      ) wo
order by pagenum