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
Mysql where条件问题的子查询_Mysql_Node.js - Fatal编程技术网

Mysql where条件问题的子查询

Mysql where条件问题的子查询,mysql,node.js,Mysql,Node.js,我不知道如何更好地命名或使用这个词,这导致我的搜索出现偏差 我有这样一个说法,它是有效的 SELECT username , ip FROM database.users WHERE ip = (SELECT ip FROM database.users_chat_history WHERE username = ? limit 1); 但是,我需要这样的东西,这是不允许的: SEL

我不知道如何更好地命名或使用这个词,这导致我的搜索出现偏差

我有这样一个说法,它是有效的

SELECT username
     , ip 
  FROM database.users 
 WHERE ip = (SELECT ip 
               FROM database.users_chat_history 
              WHERE username = ? 
              limit 1);
但是,我需要这样的东西,这是不允许的:

SELECT username
     , ip 
  FROM database.users 
 WHERE ip = (SELECT ip 
                  , posted_at 
               FROM database.users_chat_history 
              WHERE username = ? 
              group 
                 by posted_at desc 
              limit 1);
错误:ER\操作数\列:操作数应包含1列

原因是我需要它在进行搜索时抓取最新/最新的行,而对于第一行,它没有这样做,这导致了问题。第二个查询,我只需要ip来让语句工作,但我需要它在降序时按posted_分组,以便它获取最新的post

编辑: 内部查询的数据库示例:

我认为你应该用ORDER by子句替换“group by”。见下文:

SELECT username, ip FROM database.users WHERE ip = (SELECT ip FROM database.users_chat_history WHERE username = ? ORDER BY posted_at desc limit 1);

我认为你应该用ORDERBY子句代替GROUPBY。见下文:

SELECT username, ip FROM database.users WHERE ip = (SELECT ip FROM database.users_chat_history WHERE username = ? ORDER BY posted_at desc limit 1);

对于子查询,我将执行以下操作:

SELECT ip FROM database.users_chat_history WHERE username = ? ORDER BY posted_at ASC LIMIT 1;

未测试,但应仅返回ip(一列),并仅返回一条记录(改编ASC/DESC),以符合您要查找的内容

SELECT ip FROM database.users_chat_history WHERE username = ? ORDER BY posted_at ASC LIMIT 1;

未测试,但应仅返回ip(一列)和一条记录(调整ASC/DESC),以符合您所查找的内容

您未使用聚合功能。。那么,为什么在select中使用group by呢。?。试着解释一下你的目标是什么。。最终用一个合适的数据样本更新你的问题,在desc发布的预期结果会给你最新的记录更新了样本,但有人在下面回答了。你没有使用聚合函数。。那么,为什么在select中使用group by呢。?。试着解释一下你的目标是什么。。最终用一个合适的数据样本更新你的问题,预期的resultorder通过在desc发布将给你最新的记录更新了样本,但有人在下面回答了它。谢谢,这回答了它。很高兴它有帮助。谢谢,这回答了它。很高兴它有帮助。这同样有效(显然,是相同的代码),只是没有完成完整的查询,这就是为什么我选择了另一个答案作为解决我问题的答案,以防万一有人在未来的搜索中出现这个问题。谢谢你的帮助,我很感激!这同样有效(显然,是相同的代码),只是没有完成完整的查询,这就是为什么我选择另一个答案作为解决我问题的答案,以防万一将来有人搜索时会出现这个问题。谢谢你的帮助,我很感激!