-1

我有一个奇怪的问题mysql_fetch_array( $result , MYSQL_BOTH )。这是重现问题的方式:

  1. 做一个使用的查询字符串LEFT JOINGROUP BY
    select *, 
           (A1.total - A2.borrow_total) as remain_total 
      from ( select Min(sample_created_date) as created_date, 
             sample_model,
             sample_ncc, 
             count(*) as total , 
             sample_sort 
              from tb_sample 
             where 1=1 
               AND sample_kho IN ( 'hanoi','tm_hanoi' ) 
             group by sample_model, sample_sort, sample_ncc 
           ) A1 left join 
           ( select sample_model as sample_model1, 
                    count(*) as borrow_total, 
                    sample_ncc 
               from tb_sample B1 left join tb_sample_ticket B2 
                 on B1.sample_borrow_status = B2.ticket_id 
              where 1=1 
                and ticket_bo_phan_duyet = 'finish' 
                and ticket_status_duyet = '1' 
                AND sample_kho IN ( 'hanoi','tm_hanoi' ) 
              group by sample_model, sample_ncc 
            ) A2 on A1.sample_model = A2.sample_model1 
                AND A1.sample_ncc = A2.sample_ncc left join tb_product_sort A3 
                 on A1.sample_sort = A3.sort_code 
    where 1=1 
    order by created_date DESC 
    LIMIT 0, 30
  1. 实施mysql_fetch_array( $result , MYSQL_BOTH )

    $rw  = mysql_fetch_array( $result , MYSQL_BOTH );
    
  2. 显示值$rw

    echo  $rw['sample_cc'];
    

但是什么都没有。然后我试试看print_r( $rw ),结果如下:

Array
(
    [0] => 2013-06-13 04:10:39
    [created_date] => 2013-06-13 04:10:39
    [1] => 3G
    [sample_model] => 3G
    **[2] => Gmobile
    [sample_ncc] =>** 
    [3] => 1
    [total] => 1
    [4] => SIM
    [sample_sort] => SIM      
);

我看到了,$Rw[2] = 3G但是$rw['sample_ncc'] is null

这是一个奇怪的问题。请帮我解决它。

4

1 回答 1

0

尝试为子查询和(例如和)中的sample_ncc列提供明确的别名,或者只返回一个位于(意思是)左侧的别名。A1A2sample_ncc_a1sample_ncc_a2LEFT JOINA1

于 2013-06-14T04:30:25.683 回答