私は2つのテーブルを持っています:
Members:
id username
Trips:
id member_id flag_status created
("YES" or "NO")
次のようなクエリを実行できます。
SELECT
Trip.id, Trip.member_id, Trip.flag_status
FROM
trips Trip
WHERE
Trip.member_id = 1711
ORDER BY
Trip.created DESC
LIMIT
3
次のような結果が得られる可能性があります。
id member_id flag_status
8 1711 YES
9 1711 YES
10 1711 YES
私の目標は、メンバーの最後の 3 回の旅行がすべて flag_status = "YES" であるかどうかを知ることです。
また、WHERE Trip.member_id = 1711 句を削除して、すべてのメンバーに対して実行し、最後の 3 回の旅行のすべてが flag_status = "YES" であるメンバーの総数を取得できるようにしたいと考えています。
何か案は?
ありがとう!
http://sqlfiddle.com/#!2/28b2d
その sqlfiddle で、探している正しいクエリが実行されると、次のような結果が表示されるはずです。
COUNT(Member.id)
2
資格のある 2 人のメンバーは、メンバー 1 と 3 です。メンバー 5 は、出張の 1 つが flag_status = "NO" であるため、失敗します。