2011-02-08 7 views
0

のような50何かがこのMySQLのクエリは私に未知の列エラーを与える(列として定義される)またはCOUNT(*)>その

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 

は、私はこれをどのように修正することができる場所を選択?

+0

**どの列が**不明**であることを示すのに気をつけますか? – ajreal

答えて

2

あなたはHAVINGdocumentation on 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 
+0

LEFT JOINも簡素化できます – Don

+0

ありがとうございます!それは動作します.. – bbnn

+0

あなたが以前にCOUNT(v2no)として定義されたv2_vocabsをインクルードしたとき、これがどのように機能するかアドバイスできますか?これは適切な修正ではないように思われたため、以前から未知の列は何でしたか。 – anothershrubery

0

を使用する必要があります私は、未知の列があなたがno_of_vocabsを定義しているようvs.no_of_vocabsですが、それはvs/vocab_statsテーブルの一部ではない、それだけの一部ですよねクエリ。 vs.no_of_vocabsからvsを削除してください。

これが問題でない場合は、エラーメッセージが表示されます。

関連する問題