在表B中使用条件时在表A中添加列

时间:2012-02-08 03:56:14

标签: php mysql

所以我想在表格“食物”中找到一列“卡路里”。但我想找到总和

where a.id = b.foodid 
  AND b.username LIKE '$user' 
  AND b.day='$day' 
  AND b.month LIKE '$month' 
  AND b.year LIKE '$year' ORDER by b.id DESC

目前我有这个:但它不起作用

$caloriesum = mysql_fetch_assoc(mysql_query("SELECT SUM(calories) 
                                               FROM foods a, 
                                                    user_foods b 
                                              WHERE a.id = b.foodid 
                                                AND b.username LIKE '$user' 
                                                AND b.day='$day' 
                                                AND b.month LIKE '$month' 
                                                AND b.year LIKE '$year' 
                                           ORDER BY b.id DESC")) or die(mysql_error()); 

然后我稍后让剧本回显总和。

            echo('  
            <tr class = "db-out-head">
            <td><b>Totals</b></td>
            <td></td>
            <td></td>
            <td>'.$caloriesum[0].'</td>
            <td></td>
            <td></td>
            <td></td>
            </tr>');

我在空桌上看到的一切。

3 个答案:

答案 0 :(得分:0)

删除你的ORDER BY :),所以这样的sql:)

SELECT SUM(calories) FROM foods a, user_foods b WHERE a.id = b.foodid AND b.username LIKE '$user' AND b.day='$day' AND b.month LIKE '$month' AND b.year LIKE '$year'

答案 1 :(得分:0)

如果您正在寻找完全匹配,请使用等于运算符。 试试这个问题:

SELECT SUM(calories) FROM foods a INNER JOIN
user_foods b ON a.id = b.foodid AND b.username LIKE '$user' 
AND b.day='$day' AND b.month LIKE '$month' AND b.year LIKE '$year' 

答案 2 :(得分:0)

由于您创建关联数组$calories[0]将无效。在查询中为该总和命名,并将其用作数组索引。