我不知道如何更好地命名或說出這些,這會導致我的搜索出現偏差。子查詢中出現條件問題
我有這個聲明,它的工作原理。
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將給你最新的記錄 –
更新了樣本,但有人回答了它在下面的工作。 –