簡體   English   中英

選擇where(列定義為)或count(*)> 50之類的東西

[英]select where (column defined as) or count(*) > 50 something like that

這個mysql查詢給了我未知的列錯誤

SELECT count(vs.no) AS no_of_vocabs, level, owner_no FROM vocab_stats as vs 
LEFT JOIN (SELECT no, level FROM mst_words) mw ON mw.no = vs.vocab_no 
WHERE owner_no = 6 AND correct > 0 AND vs.no_of_vocabs > 50 
group by owner_no, level

我怎樣才能解決這個問題?

您應該使用HAVING (請參閱SELECT上的文檔

SELECT COUNT(vs.no), level, owner_no FROM vocab_stats as vs 
LEFT JOIN (SELECT no, level FROM mst_words) mw ON mw.no = vs.vocab_no 
WHERE owner_no = 6 AND correct > 0
GROUP BY owner_no, level
HAVING COUNT(vs.no) > 50

我想您所定義的no_of_vocabs未知列是vs.no_of_vocabs ,但它不是vs / vocab_stats表的一部分,它只是查詢的一部分。 vs.no_of_vocabs刪除vs ,應該修復它。

如果這不是問題,我們將需要查看錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM