【问题标题】:INNER JOIN with ORDER BY and GROUP BY使用 ORDER BY 和 GROUP BY 进行 INNER JOIN
【发布时间】:2013-07-29 06:31:52
【问题描述】:

表:pm_productos
字段:prod_ID、prov_prod_nif、prod_fechafactura、prod_numerofactura、prod_totalproducto


表:pm_proveedores
字段:prov_ID、prov_nif、prov_nombre 等...

我的查询是:

$query = "SELECT pm_productos.*, pp.prov_nombre FROM pm_productos INNER JOIN 
pm_proveedores pp ON pp.prov_nif = pm_productos.prov_prod_nif 
WHERE prod_nombreproducto like '%$search%' LIMIT $offset, $rowsperpage" ;

我的输出表是:

$result=mysql_query($query);
     while ($row = mysql_fetch_array($result))
{
  echo "<tr>
   <td>",$row[1],"</td>
   <td>",$row[10],"</td>
   <td>",date('d/m/Y',strtotime($row[2])),"
       <td><a href='fact_view.php?roll=".$row[3]."'>".$row[3]."</a></td>
   <td>",$row[4],"</td>
   <td>",$row[5],"</td>
   <td align=center>",$row[6],"</td>
   <td align=right>",$row[7],"</td>
   <td align=right>",$row[8],"</td>
   <td align=right>",$row[9],"</td>
}

代码运行良好,但我有 2 个问题:

  1. page productos_view.php - 如何在此 INNER JOIN 中“按 prod_fechafactura 排序”? (prod_fechafactura 是一个日期字段)。

  2. Page facturas_view.php - 使用相同的 INNER JOIN,如何在两个日期之间进行选择(在 prod_fechafactura 字段中),然后在表格中显示 prod_totalproducto GROUP BY prod_numerofactura 对于每个提供者的 SUM(prov_nif 和 prov_nombre )? (如果没有选择日期,则显示所有按 prod_fechafactura 排序的记录,如下所示:

prov_nif、prov_nombre、prod_fechafactura、prod_numerofactura、prod_totalproducto 的总和

【问题讨论】:

    标签: mysql group-by sql-order-by inner-join


    【解决方案1】:

    这是第一个:通过prod_fechafactura订购

        $query = "SELECT pm_productos.*, pp.prov_nombre FROM pm_productos INNER JOIN 
        pm_proveedores pp ON pp.prov_nif = pm_productos.prov_prod_nif 
        WHERE prod_nombreproducto like '%$search%' LIMIT $offset, $rowsperpage 
        ORDER BY prod_fechafactura" ;
    

    这是第二个:总结 prod_totalproducto

        $query = "SELECT PP.prov_nif, pp.prov_nombre, SUM(prod_totalproducto)
        FROM pm_productos INNER JOIN 
        pm_proveedores pp ON pp.prov_nif = pm_productos.prov_prod_nif 
        WHERE prod_nombreproducto like '%$search%'
        AND prod_fechafactura BETWEEN 'start date' AND 'end date' 
        GROUP BY prov_nif,prov_nombre
        LIMIT $offset, $rowsperpage" ;
    

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      相关资源
      最近更新 更多