我不知道如何更好地命名或说出这些,这会导致我的搜索出现偏差。子查询中出现条件问题
我有这个声明,它的工作原理。
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);
Error: ER_OPERAND_COLUMNS: Operand should contain 1 column(s)
原因是是我需要它这样做搜索时抢最新/最近期的行,并与第一个,这不是这样做,这是造成问题。第二个查询,我只需要该语句的ip工作,但我需要它通过posted_at降序分组,因此它抓住了最新的职位。
你没有使用聚合函数..所以你为什么在select中使用group by?尝试解释你的目标是什么。最终用适当的数据样本更新你的问题和预期的结果 – scaisEdge
order by posting_at desc将给你最新的记录 –
更新了样本,但有人回答了它在下面的工作。 –