Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NodeJS复杂的Mysql查询(带别名)?_Mysql_Sql_Node.js_Select - Fatal编程技术网

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

下面是我在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'

允许我在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,因此您可能在替换过程中遗漏了一些内容。