特定のSQLクエリに関して少し問題があります。2つのテーブルのデータを結合する必要がありますが、3番目のテーブルを使用してデータを制限します(必ずしもデータを取得する必要はありません)。表は次のとおりです。
MEMBERS(member_id,first_name,last_name)
MEMBERS_GROUPS(member_id,group_id)
CHARGES(charge_id,member_id,charge_amount,status)
特定のグループのすべてのメンバーのすべての料金を検索する必要がありますが、MEMBERSテーブルから名前と名前も取得したいと思います。私がこれまでに思いついたクエリは次のとおりです。
select c.*, m.first_name, m.last_name
FROM charges c
LEFT JOIN member m
ON c.member_id=m.member_id
INNER JOIN members_groups mg
ON mg.group_id=1
私も試しました:
SELECT c.*, m.first_name, m.last_name
FROM charges c, members_groups mg, member m
WHERE c.member_id=mg.member_id
AND mg.group_id = 1
AND c.status='Valid'
AND c.member_id = m.member_id
…しかし、どちらも必要なデータを返しません。私はこれを考えすぎていると確信していますが、私は一生の間正しい値を取得することはできません。デカルト積のように見えるものを取得し続けます-それにもかかわらず、それは明らかに多すぎる行と悪いデータを返しています。