$result1 = mysql_query("
SELECT
salessumarry,rsales.*,
FROM salessumarry
LEFT JOIN rsales ON rsales.receipt = salessumarry.receipt
WHERE (register_mode='sales') AND (date BETWEEN '$a' AND '$b')GROUP BY receipt");
答案 0 :(得分:0)
您正在使用额外的逗号请参阅此查询和测试。
SELECT
salessumarry,
rsales.*
FROM
salessumarry
LEFT JOIN rsales
ON rsales.receipt = salessumarry.receipt
WHERE (register_mode = 'sales')
AND (DATE BETWEEN '$a'
AND '$b')
GROUP BY receipt
答案 1 :(得分:0)
如果想要所有字段
SELECT
salessumarry,rsales.*,
FROM
应该是
SELECT
*
FROM
答案 2 :(得分:0)
该错误是因为您在salessumarry
的选择查询中使用了表名而不是列名,并且在rsales.*
之后还有一个额外的逗号。我想你正试图做这样的事情:
$result1 = mysql_query("
SELECT
salessumarry.*,rsales.*
FROM salessumarry
LEFT JOIN rsales ON rsales.receipt = salessumarry.receipt
WHERE (register_mode='sales') AND (date BETWEEN '$a' AND '$b')GROUP BY salessumarry.receipt");
注意:强>
请避免使用mysql_query
作为
答案 3 :(得分:0)
如mysql_query()
所述:
警告
自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应使用MySQLi或PDO_MySQL扩展名。有关详细信息,另请参阅MySQL: choosing an API指南和related FAQ。该功能的替代方案包括:
因此,您确实应切换到其他API。
另据记载:
返回值
对于返回结果集的SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句, mysql_query()会在成功时返回resource,或
FALSE
出错了。
[ deletia ]
示例#1无效查询
以下查询在语法上无效,因此 mysql_query()会失败并返回
FALSE
。<?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); } ?>
因此,如果您不切换到使用其他API,则至少测试$result1
的值,如果它是{{ 1}},检查mysql_error()
以获取有关出错的更多信息。
即使您不执行上述任一操作,您也可以输出FALSE
的字符串参数,以确切了解发送到MySQL服务器的命令;然后尝试将其复制/粘贴到MySQL客户端(以便您可以直接检查服务器的响应方式)。
如果没有上述任何步骤,这里的任何人都很难确切地告诉您问题的原因。但是,我的猜测是至少有三个问题:
您的mysql_query()
列表末尾有一个多余的逗号;
您没有名为SELECT
的列,它出现在salessumarry
列表中;以及
您对查询进行分组的SELECT
列不明确(两个表中似乎都有这样的命名列) - 您应该限定列引用表格标识符。
您还应该阅读文章MySQL Extensions to GROUP BY
,因为即使上述问题得到纠正,您也可能会有一个返回不确定结果的查询(这不太可能是您的意图)。