MySQL复杂的查询。基于另一个动态更新表中的行

时间:2014-03-24 13:49:41

标签: php mysql sql

enter image description here

以上是我画的方案。当content.user被分组时,有一个理想的情况。但通常他们没有分组。 我在这个计划中的意思是:

  1. 在第一步,我选择users.monetos WHERE users.id = content.user

  2. 在第二步,我使用users.monetos值(2.1,2.2)递减content.cpc

  3. 模拟时:  选择content.user(9)

    选择users.monetos其中users.id=content.users(15)

    因此users.monetos的{​​{1}}值为15,现在我们回到内容表 并且:

    1. 使用8(users.id=9)递减15值(15-8 = 7 > 0 - >转到第2步)
    2. 递减7(上一步的结果),其中10(content.cpc)(7-10 = -3< 0->更新 content set active ='0'其中content.id =(获得否定结果时的当前id))
    3. 对于每个content.cpc

      都是如此

      更多扩展 - 我想选择content.user = 1 (n)contet.*行。拥有此数据,content.active SELECT WHERE users.monetos = users.id来自之前的查询。 现在,通过最大(n)步骤,我通过 content.cpc 值递减content.user当** users.monetos = 0或小于0时​​,我想更新users.monetos并且SET active ='0'**

      通过语言,我想分享 users.monetos 金额到每个内容条目(每个 content.cpc )。并且没有更多 users.monetos 制作当前content 进入不活跃。并且每个 content.user 执行此操作 我此时所做的事情如下所示。我现在看起来很糟糕,但我已经不知道该怎么做了。

      content

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

$query = "select * from users";
foreach($rows = $connector->fetchArray($query) as $row ) {
    $a='';
$query = "select * from content where user='{$row[id]}' and active='1' ";
foreach($contents = $connector->fetchArray($query) as $content ) {
    $a++;
    $a_min=$a-1;
    $test[$a]=$row[monetos]-$content[cpc];      
    if($a==2){
        if($test[$a_min] > 0){
            $test2=$test[$a_min]-$content[cpc];
            if($test2 < 0){
                $connector->query("update content set active='0' where id='$content[id]'");
            }
        }
    }
}   
}
相关问题