table1 中有 10w 条以上的数据:
id  views ...
1   1000  ...
2   1500  ...
3   2000  ...
4   1600  ...table2 中有 100 条左右的数据:
id  views
1   10
2   5
4   8
-------------
要求: table2 中的相应的 views 加到 table1 中后,清空 table2 中的数据。即 table1 变为:
id  views ...
1   1010  ...
2   1505  ...
3   2000  ...
4   1608  ...这样的更新语句,该怎么写?

解决方案 »

  1.   


    $sql1="update table1 set table1.views=table1.views +table2.views where table1.id=table2.id";
    $sql2="truncate table table2"
      

  2.   

    $sql1="update table1,table2 set table1.views=table1.views +table2.views where table1.id=table2.id";
      

  3.   

    <?php
    header ("Content-Type:text/html;charset:UTF8");
    require_once ("connect.php");
    require_once ("main.php");
    $dbname="test";
    $tablename1="table1";
    $tablename2="table2";
    $sql="update table1,table2 set table1.views=table1.views+table2.views where table1.ID=table2.ID";
    $del="delete table2 from table1,table2 where table2.ID=table1.ID";
    $view1="select * from table1";
    $view2="select * from table2";mysql_select_db($dbname);
    $result=mysql_query($sql) or die ("WRONG:".mysql_error());
    mysql_query($del) or die ("WRONG:".mysql_error());
    echo '表'.$tablename1.'中的内容为:';
    $view=mysql_query($view1);
    while ($row = mysql_fetch_array($view)){
    echo '<pre>';
    print_r ($row);
    echo '</pre>';
    }
    echo '表'.$tablename2.'中的内容为:';
    $view=mysql_query($view2);
    while ($row = mysql_fetch_array($view)){
    echo '<pre>';
    print_r ($row);
    echo '</pre>';
    }
    mysql_free_result($result);
    ?>