単純なクエリであるべきものに苦労しています。
イベント テーブルには、アプリケーション内のユーザー アクティビティが格納されます。クリックするたびに、新しいイベントと日時スタンプが生成されます。最新の日時スタンプを持つ最近アクセスされたレコードのリストを表示する必要があります。過去 7 日間のアクティビティのみを表示する必要があります。
テーブルには、date_event フィールドに対応する自動インクリメント フィールド (eventID) があるため、それを使用してグループ内の最新のレコードを決定することをお勧めします。
予想される最新の日時で、一部のレコードが結果に表示されないことがわかりました。そこで、クエリの基本を取り除きました。
実際のクエリは custID を参照しないことに注意してください。問題を絞り込むためにここに含めます。
SELECT
el.eventID,
el.custID,
el.date_event
FROM
event_log el
WHERE
el.custID = 12345 AND
el.userID=987
GROUP BY
el.custID
HAVING
MAX( el.eventID )
これが返されます:
eventID custID date_event
346290 12345 2013-06-21 09:58:44
ここに説明があります
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE el ref userID,custID,Composite custID 5 const 203 Using where
HAVING MIN を使用するようにクエリを変更しても、結果は変わりません。custID と userID に一致するレコードが多数あるため、別の eventID と date_event が表示されるはずです。
SELECT
el.eventID,
el.custID,
el.date_event
FROM
event_log el
WHERE
el.custID = 12345 AND
el.userID=987
GROUP BY
el.custID
HAVING
MIN( el.eventID )
前と同じ結果:
eventID custID date_event
346290 12345 2013-06-21 09:58:44
変化なし。
これは、別の問題があることを示していますが、それが何であるかはわかりません。
いくつかの指針をいただければ幸いです。