php - mysql子查询返回错误

标签 php mysql sql join subquery

SELECT 
    upd.*,
    usr.username AS `username`,
    usr.profile_picture AS `profile_picture`
    ,(
        SELECT COUNT (like.id)
        FROM likes as like
        WHERE upd.update_id = like.item_id
           AND like.uid = 118697835834
    ) as liked_update

FROM updates AS upd
LEFT JOIN users AS usr 
    ON upd.uid = usr.uid
WHERE upd.deleted=0
    AND 
    ( upd.uid=118697835834
        OR EXISTS ( SELECT *
                    FROM   subscribers AS sub 
                    WHERE  upd.uid = sub.suid
                    AND  sub.uid = 118697835834
            )
    )
ORDER BY upd.date DESC
LIMIT 0, 15

SELECT 中的子查询返回以下错误:

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 
    'like WHERE upd.update_id = like.item_id AND l' at line 10

最佳答案

like 是SQL中的保留字;您应该为您的 likes 表使用不同的别名。更改您的子查询:

SELECT
    COUNT (like.id)
FROM
    likes as like
WHERE
    upd.update_id = like.item_id
    AND like.uid = 118697835834

类似于:

SELECT
    COUNT (l.id)
FROM
    likes as l
WHERE
    upd.update_id = l.item_id
    AND l.uid = 118697835834

关于php - mysql子查询返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519343/

相关文章:

mysql - SQL json提取数组中的位置

SQL SELECT LIKE 只包含特定的词

转义撇号中的PHP Mysql更新序列化数组

按列唯一的 PHP 数组

php - 使用 jQuery 加载页面时是否可以获取 POST 值?

php - 如何从 MySQL 时间戳数据类型的日期中减去一天?

python - 了解 SQLAlchemy 中的中间 SQL 语句

mysql - 当标识符不是保留字或带有空格时,为什么必须使用反引号?

javascript - 使用 ajax 和 php 的空响应

php - 用同样的数据选择