Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:select语句中的SQL语法有错误_Php_Mysql - Fatal编程技术网

Php 错误:select语句中的SQL语法有错误

Php 错误:select语句中的SQL语法有错误,php,mysql,Php,Mysql,只有当o.status\u id等于4或5时,我才试图获取信息,但我得到了这个错误 Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN order_items oi ON i.id = oi.item_id INNER JOIN orders

只有当
o.status\u id
等于4或5时,我才试图获取信息,但我得到了这个错误

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the 
right syntax to use near 'INNER JOIN order_items oi ON i.id = oi.item_id INNER JOIN orders o ON o.id =' at line 14 
这是我的sql语句

$sql = '
SELECT 
    i.*, 
    o.*, 
    oi.*,
    u.*, 
    YEAR(o.sold_date) sold_date_Y4,
    MONTH(o.sold_date) sold_date_M4


FROM items i

WHERE o.status_id = 4 AND o.status_id = 5

INNER JOIN order_items oi ON i.id = oi.item_id
INNER JOIN orders o ON o.id = oi.order_id
INNER JOIN users u ON u.id = o.user_id
GROUP BY YEAR(o.sold_date), MONTH(o.sold_date), u.name, i.item
ORDER BY YEAR(o.sold_date), MONTH(o.sold_date), u.name, i.item

';

据我所知,我的MySQL版本是5.7.23

问题是,在所有
内部连接之前,您都使用了
WHERE

$sql = '
SELECT 
    i.*, 
    o.*, 
    oi.*,
    u.*, 
    YEAR(o.sold_date) sold_date_Y4,
    MONTH(o.sold_date) sold_date_M4


FROM items i

INNER JOIN order_items oi ON i.id = oi.item_id
INNER JOIN orders o ON o.id = oi.order_id
INNER JOIN users u ON u.id = o.user_id

WHERE o.status_id = 4 AND o.status_id = 5

GROUP BY YEAR(o.sold_date), MONTH(o.sold_date), u.name, i.item
ORDER BY YEAR(o.sold_date), MONTH(o.sold_date), u.name, i.item

';

JOIN
位于
WHERE
之前。请参阅文档:在JOIN之后添加WHERE条件。如果它不起作用,请在没有任何条件的情况下尝试将所有结果打印在屏幕上。您可以直接在服务器上运行它并检查结果吗?phpMyAdmin或其他:)@Anand-如果我删除WHERE条件,那么它会工作,除了删除与ostatus_id 4或5无关的任何内容。@zanderwar-它说它返回了一个空结果,但status_id有4和5。我还添加了一个或条件。看起来我的数据库中实际上没有状态识别码5