NodeJS复杂的Mysql查询(带别名)?
下面是我在NodeJS中使用的一个简单的MySQL查询,它工作得很好NodeJS复杂的Mysql查询(带别名)?,mysql,sql,node.js,select,Mysql,Sql,Node.js,Select,下面是我在NodeJS中使用的一个简单的MySQL查询,它工作得很好 Audiopost.getAll = result => { sql.query("SELECT * FROM audioposts", (err, res) => { if (err) { console.log("error: ", err); result(null, err); return; } co
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'
允许我在NodeJ的SQL代码中使用别名吗?我做错了什么?如何执行此查询?javascript中的单引号和双引号字符串中不允许使用换行符。您需要将所有换行符替换为\n或使用反勾号而不是引号来定义字符串。Backticks`创建一个允许换行的模板文本 让查询=` 选择 美联社, ap.userid, 美联社, 美联社标题, 美联社喜欢, 美联社, u、 加瓦塔, u、 名字, u、 电子邮件, u、 生物, 选择组_CONCATt.tagname 来自entitytag et t.tagid=et.tagid上的左连接标记t 其中et.audioid=ap.audioid 标记名, 从audioposts op中选择count*,其中op.opid=ap.audioid 作为答复计数 来自美联社 在u.id=ap.userid上左加入用户u 其中ap.opid='0' `; sql.queryquery,err,res=>{/*…*/}
是的,您也可以在in节点上运行任何有效查询。请出示您的实际代码,不要描述您要替换的内容。您看到的错误不是SQL而是JS,因此您可能在替换过程中遗漏了一些内容。