我有以下代码:
<?php
$result = $db->query("select sum(hol_count) as TOTALBOOKEDHOLIDAYS from holidays");
$row = $result->fetch_row();
echo $row[0];
?>
这会计算hol_count并返回计算出的数字。我有一个名为&#39; config&#39;的单独表格。和两列:&#39; hol_year_start&#39;和&#39; hol_year_end&#39;这将设置日期范围。我正在尝试在查询中包含这两个值,但在尝试许多不同的方法来实现这一点时遇到了许多错误。我试图将这两个值定义为变量,然后将这些变量与BETWEEN一起用于在谁的日期范围之间进行计数。我一直收到关于$row = $result->fetch_row();
的错误以及尝试以下内容:
("select sum(hol_count) as TOTALBOOKEDHOLIDAYS from holidays
BETWEEN
(SELECT hol_year_start FROM config)
AND
(SELECT hol_year_end FROM config) )"
我知道这可能非常简单,但我似乎无法将这两个值定义为变量,然后在查询中使用它们来检索所需的数据。
从配置表中定义两个值的正确方法是什么,然后在查询中使用它们来计算假日表中的hol_count?
答案 0 :(得分:1)
您认为自己错过了查询中的WHERE。子选择也必须只返回一个结果。如果您使用的是MySQL,则需要设置LIMIT 1。
SELECT SUM(hol_count) AS TOTALBOOKEDHOLIDAYS FROM holidays
WHERE date_field_name
BETWEEN (SELECT hol_year_start FROM config LIMIT 1)
AND (SELECT hol_year_end FROM config LIMIT 1)