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