OK]をクリックして、私は1つのテーブル表Aそれを呼び出すと、データベースを持って検討してください。 表A Have Id int、sum int。 私は合計値の平均よりも大きいテーブルAの合計値が必要です。私は2つのクエリ作っこのためストレンジ(不明)MySQLの行動
:私はそれを参照してください
SELECT
a.id
FROM
TableA a,
(SELECT AVG(sum) AS mes FROM TableA) b
WHERE
a.sum>b.mes;
SELECT
a.id
FROM
TableA a
WHERE
a.sum > (SELECT AVG(a.sum))
GROUP BY
a.id;
方法をこれらのクエリは同じですが、結果は、第二のための第1およびNullのためのOKです。私の質問は簡単です
、2番目のクエリの論理エラーはありますか?はいの場合、誰かが理由を説明できますか?
だから、2番目のクエリでは、私はその結果セットを持つ別のテーブルではなくて、テーブルから結果セットを比較することを意味? – HasS
答えはそう、それはグループがa.idを使用し、その平均値がその値に等しくなりますので –
を確認してください更新しました真のですが、私はその値以上のために比較しようとして簡単なテストをした、あなたが上記で説明したように、結果は、同じgroup by句から得たすべての値である:Dのthnxあなたの答えのために –