fxu*_*ser 1 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
Run Code Online (Sandbox Code Playgroud)
子查询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
Run Code Online (Sandbox Code Playgroud)
like是SQL中的保留字; 你应该为你的likes表使用不同的别名.更改您的子查询:
SELECT
COUNT (like.id)
FROM
likes as like
WHERE
upd.update_id = like.item_id
AND like.uid = 118697835834
Run Code Online (Sandbox Code Playgroud)
类似于:
SELECT
COUNT (l.id)
FROM
likes as l
WHERE
upd.update_id = l.item_id
AND l.uid = 118697835834
Run Code Online (Sandbox Code Playgroud)