第一张表是部门表如下图所示
字段名称 字段 类型
ID ID bigint
部门名称 dpName varchar(20)
上级部门 dpUpID varchar(20)
第二张表是产品入库表如下所示
字段名称 字段             类型
ID ID          bigint
入库部门 into_depment varchar(20)
入库时间 into_time varchar(20)
设备类型 into_type varchar(20)
设备参数 into_confg text
采购数量 into_numb varchar(20)
采购单价 into_price varchar(20)

是否审核通 into_check varchar(10)
入库人 into_name varchar(20)
备注 into_noto varchar(100)现在要把某一个部门底下级别底下的二级部门的产品统计出来,像这样的话将怎么写SQL语句,用PHP怎么才能实现,就大神们指点..

解决方案 »

  1.   

    部门表
    产品入库表
    我先是这样写的<?PHP 
    include("../conn/conn.php");
    $query_1 = "select * from tbl_department where dpUpID ='0'";
    $query_info_1 = mysql_query($query_1);
    while($row_1 = mysql_fetch_array($query_info_1)){
    $row_1[dpUpID];
    $tmp_1[] = $row_1[dpName]; //1级
    echo $row_1[dpName]."<br>";
    print_r($tmp_1);
    echo "<br>";
    $query_2 = "select * from tbl_department where dpUpID = '$row_1[ID]'";
    $query_info_2 = mysql_query($query_2);
    while($row_2 = mysql_fetch_array($query_info_2)){  
    $tmp_2[] = $row_2[dpName]; //2
    $tmp_2ID[] = $row_2[ID];
    $into_dpID = implode(",",$tmp_2ID);
    echo "第二级".$row_2[dpName]."<br>";
    print_r($tmp_2);
    echo "<br>";
    $query_3 = "select * from tbl_department where dpUpID = '$row_2[ID]'";
    $query_info_3 = mysql_query($query_3);
    while($row_3 = mysql_fetch_array($query_info_3)){  
    $tmp_3[] = $row_3[dpName]; //3
    echo "第三级".$row_3[dpName]."<br>";
    print_r($tmp_3);
    echo "<br>";
    $query_4 = "select * from tbl_department where dpUpID = '$row_3[ID]'";
    $query_info_4 = mysql_query($query_4);
    while($row_4 = mysql_fetch_array($query_info_4)){
    $tmp_4[] = $row_4[dpName]; //4
    echo "第四级".$row_4[dpName]."<br>";
    print_r($tmp_4);
    echo "<br>";
    }
    }
    }
    }
    运行的结果是:
    润安大厦
    Array ( [0] => 润安大厦 ) 
    第二级信息部
    Array ( [0] => 信息部 ) 
    第三级ssss
    Array ( [0] => ssss ) 
    第四级hhh
    Array ( [0] => hhh ) 
    第二级财务部
    Array ( [0] => 信息部 [1] => 财务部 ) 
    第二级行政人事部
    Array ( [0] => 信息部 [1] => 财务部 [2] => 行政人事部 ) 
    第二级研发部
    Array ( [0] => 信息部 [1] => 财务部 [2] => 行政人事部 [3] => 研发部 ) 
    金梦大厦
    Array ( [0] => 润安大厦 [1] => 金梦大厦 ) 
    第二级财务部
    Array ( [0] => 信息部 [1] => 财务部 [2] => 行政人事部 [3] => 研发部 [4] => 财务部 ) 
    第二级信息部
    Array ( [0] => 信息部 [1] => 财务部 [2] => 行政人事部 [3] => 研发部 [4] => 财务部 [5] => 信息部 ) 
    恒丰大厦
    Array ( [0] => 润安大厦 [1] => 金梦大厦 [2] => 恒丰大厦 )
    现有的部门结果如下: 
    我需要统计出
    XXX大厦底下的所有部门的产品数
    其中在产品入库表中的into_dpID字段和部门表中ID字段是一样的....
      

  2.   

    select * from 部门表 a inner join 产品入库表 b on a.ID=b.into_depment where a.dpUpID=1
      

  3.   


    提示错误啊,
    $query_count = "select * from tbl_department a inner join tbl_into b on a.ID=b.into_dpID where a.dpUpID=0"
    $sql_count = mysql_query($query_count);
    $result = mysql_result($sql_count,0);
    echo $result;
    这样写会有错吗???