質問: 現在の課題 ----- あるテーブルで、過去データを正常に取得できません。 データはテーブルに入っているようなのですが、発行したクエリのWHERE条件と想定する結果が異なっており、 その原因を解決することが出来ず困っております。 実行したクエリ ------- ``` SELECT MIN(xxx_type) , target_date FROM TEST_TABLE ``` テーブル定義 ------ ``` SHOW COLUMNS FROM TEST_TABLE; ``` の結果です。 ※テーブル名やクエリ名は仮のものです。 | Field | Type | Null | Key | Default | Extra | | --- | --- | --- | --- | --- | --- | | pri_id | int(11) | NO | PRI | NULL | auto_increment | | target_date | date | NO | PRI | 0000-00-00 | | | xxx_type | int(11) | YES | MUL | NULL | | あまり多くない情報の中大変恐縮ではありますが、 何か原因に心当たりのある方がいれば、ご教示いただきたく存じます。 何卒宜しくお願い致します。
回答: > > SELECT > > xxx_type > > , condition_id > > , target_date > > ・・・ > > GROUP BY > > target_date > > > MySQLでは拡大解釈してエラーにはならいですが厳密には文法違反 group by で利用したカラム以外を集計関数なしにselect句ではつかえません 今回でいうとxxx_typeとcondition_idは違反、ただしxxx_typeは1が確定 しているので100歩ゆずって問題ないですがcondition_idは複数あるのであればNGです たとえばMIN()などで処理してみるとか・・