【发布时间】:2021-04-26 19:55:50
【问题描述】:
这是我在 NodeJS 中使用的一个简单的 MySQL 查询,效果很好;
Audiopost.getAll = result => {
sql.query("SELECT * FROM audioposts", (err, res) => {
if (err) {
console.log("error: ", err);
result(null, err);
return;
}
console.log("audioposts: ", res);
result(null, res);
});
};
但是,当我尝试用更复杂的查询替换“SELECT * FROM audioposts”语句时,我得到了;
SyntaxError: Invalid or unexpected token.
这是来自 PHP 页面的更复杂的查询;
SELECT
ap.audioname,
ap.userid,
ap.audioid,
ap.title,
ap.likes,
ap.opid,
u.gavatar,
u.name,
u.email,
u.bio,
(
SELECT GROUP_CONCAT(t.tagname)
FROM entitytag et
LEFT JOIN tags t on t.tagid = et.tagid
WHERE et.audioid = ap.audioid
) tagname,
(
SELECT count(*) FROM audioposts op WHERE op.opid = ap.audioid
) as replycount
FROM audioposts ap
LEFT JOIN users u ON u.id = ap.userid
WHERE ap.opid = '0'
我可以在 nodeJS 的 SQL 代码中使用别名吗?我究竟做错了什么?如何执行此查询?
【问题讨论】:
-
是的,您也可以在节点上运行任何有效的查询。请显示您的实际代码,而不是描述您要替换的内容。您看到的错误不是 SQL 而是 JS,因此您可能在替换过程中遗漏了一些东西。