テーブルの説明:
Table Members:
id
name
status
Table Memberships:
id
date_start
date_end
date_added
cost
member_id
status
membership_type
Table Things:
id
name
quantity
member_id
status
次のクエリを使用して、各「MEMBER」の最後の列に「THINGS」の合計を持つ各「MEMBER」の「MEMBERSHIP」を表示するテーブル/ビューを取得したいと考えました。
ロジックは次のとおりです。「MEMBERS」はレコードごとに 1 つのメンバーであり、各「MEMBER」は複数の「MEMBERSHIPS」を持つことができ、各「MEMBER」は複数の「THINGS」レコードを持つことができます。
ただし、次のクエリは、各ユーザーが持っているメンバーシップの数を掛けた物の量の合計を返します。
select
memberships.id,
memberships.member_id,
members.name,
members.status,
memberships.membership_type,
memberships.date_start,
memberships.date_end,
memberships.date_added,
memberships.cost,
memberships.status
sum(things.quantity) as quantity
from memberships
right join members on memberships.member_id = members.id
right join things on things.member_id = members.id
where NOW() between memberships.date_start and memberships.date_end
and memberships.status = 1
and things.status = 1
and members.status = 1
group by members.id, memberships.member_id