私は90%のクエリを持っています。「未知の列a.UserID where句」のエラーを表示しています。 SQLの内部処理は、私がテーブルAを設定していることがわからないため、それが問題になることはわかりませんが、それは私の知識と専門知識を超えて機能します。私はJOINで代替ルートを試しましたが、問題MySQLのサブクエリ/ジョイン
クエリは次のとおりです。だから、基本的に私は何をしようとしている
SELECT
a.*,
(SELECT AVG(c.PlayerTime)
FROM (
SELECT PlayerTime
FROM elite_highscores b
WHERE a.UserID = b.UserID
ORDER BY PlayerTime ASC LIMIT 10
) c
) AS avgtime,
MIN(PlayerTime) as besttime,
MAX(TimeAdded) as time,
COUNT(UserID)
FROM elite_highscores a
WHERE Publish = 'Yes'
GROUP BY UserID HAVING COUNT(UserID) >= 10
ORDER BY avgtime ASC
も(ログインして10以上のハイスコアを持つユーザーのための)ハイスコアテーブルからいくつかの数字を選択しています平均時間(avgtime)を計算しますが、そのプレイヤーの最後の10点に基づいて計算します。これが私の問題を引き起こしています。他のすべては正常に動作しているようです。
テーブル構造:
ScoreID int(16)
UserID int(10)
PlayerScore int(16)
Publish enum('No', 'Hidden', 'Expired', 'Yes')
TimeAdded int(16)
PlayerIP varchar(18)
Country varchar(2)
PlayerTime int(10)
code varchar(50)
あなたはちょうどあなたがそれを割り当てられた短い名前の代わりに、実際のテーブル名を使用するだけです。 –
あなたの 'a.UserID = b.UserID'サブクエリーは2回ネストされているので、参照として最も外側のスコープIIRCを使用することはできません。 – Naltharial
Andreas、質問の一部を私は置き換えますか? Naltharialはいはいそれが問題だと思ったが、それが入れ子になっていないと構文エラーがスローされる。 – user759542