私は2つのテーブルを持っています。
「メンバー」テーブル:
member_id、member_name、voter_id
1、ABC、2
2、フレッド、0
(つまり、フレッドは ABC の有権者です。)
「課金」テーブル:
請求ID、メンバーID、請求有効期限
2012年1月1日
2013年2月1日
2014年3月1日
(したがって、ABC は 3 回の年次支払いを行い、2014 年まで支払われます。)
すべてのメンバーのリストを生成しようとしていますが、最高値の有効期限を示す「有効期限」列が追加されています。しかし、ここが私がどうすればよいかわからない部分です。「有効期限」として「2014」を示す「ABC」に加えて、「有権者」メンバーに、親メンバーで見つかったものと同じ有効期限値を表示する必要があります (この場合、Fred は 2014 年も表示します。値が見つかりました)。
交流
###### 以前の投稿への更新ここにSQLがあります。非常に遅く、最高の年が返されないため失敗します。
select member.*, corp.*, billing.billing_expires from member
left join member as corp
on (corp.voter_id = member.member_id)
left join billing
on (corp.voter_id = billing.member_id)
group by member.member_id
order by billing.billing_expires desc