ある列に対して DISTICNT クエリを実行し、SELECT ステートメントにない別の列で並べ替えようとしています。次のエラーが発生します:
クエリが失敗しました SQLSTATE[HY000]: 一般エラー: 3065 式 #1 ORDER BY 句が SELECT リストにありません、参照される列です 「midnites_midNite.product_in_category.sortOrder」が存在しません 選択リスト。これは DISTINCT
と互換性がありません。
ID、cat_ID、product_ID、sortOrder の 4 つの列を含むテーブルの例として、products_in_category があります。 Product_ID WHERE cat_ID = 9 DISTICNT クエリを実行し、sortOrder 列の関連するクエリ値で並べ替えようとしています。
リーリーこのクエリは 3 つの値 5、26、7 を返します。これは正しいですが、関連付けられた sortOrder 値によって並べ替える必要もあります。以下のこのクエリを使用すると、5 つの値が返されますが、sortOrder 列の値はすべて一意であるため、これは正しくありません。
リーリー以下のクエリを使用すると、mySQL がこのエラーをスローします。その理由はわかりますが、sortOrder が SELECT ステートメントに含まれていません。 Product_ID 列に対して DISTICNT クエリを実行し、返された値に関連付けられた sortOrder 値で並べ替える方法がわかりません。
リーリークエリが失敗しました SQLSTATE[HY000]: 一般エラー: 3065 式 #1 ORDER BY 句が SELECT リストにありません、参照される列です 「midnites_midNite.product_in_category.sortOrder」が存在しません 選択リスト。これは DISTINCT
と互換性がありません。
私はさまざまなunion、join、selectステートメントをさまざまな方法で試してみました。ご理解いただけると幸いです。ご協力いただければ幸いです。 ! !