php - 错误: You have an error in your SQL syntax in select statement

标签 php mysql

仅当 o.status_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

最佳答案

问题是您在所有INNER JOIN之前使用了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

';

关于php - 错误: You have an error in your SQL syntax in select statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406281/

相关文章:

mysql - 与数据源的连接过多

mysql - 如何在 Windows 上的 MySQL Server 5.6 中更改端口号(不是在 XAMPP 内置的 mysql 中)

php - 在 mySQL 查询中使用 IF

通过 SSL 的 php SOAP 调用 - 如何在请求中同时插入证书、 key 和 CA 证书?

php - 如何防止站点遭受 SQL 注入(inject)

c# - 使用Razor MVC + Mysql进行用户身份验证

mysql - mysql中的累计公式

php - Docker没有实时反射(reflect)变化(Laravel)

php - 无法在谷歌云上使用 PHP 连接到 mysql。没有错误弹出

javascript - 如何使用 php 将动态文本框值插入到同一 ID 上的数据库表中?