2
私は確かに是正措置の質問がここにあるが、私は私の人生のためのこの単純な結合を働かせることはできません。複数のテーブルで単純な結合を実行するにはどうすればよいですか?
- MEMBERS(FIRST_NAME、LAST_NAME)、
- MEMBER_TO_GROUP(MEMBER_ID、GROUP_ID)
- 支払い(MEMBER_ID、日付、金額):
は基本的に、私は3つのテーブルを持っています。
特定のグループのメンバーからのすべての支払いを取得しようとしています。テーブルのうちの2つだけを使用することで、特定のグループのすべての支払いをメンバー情報なしで見つけることができます。または、支払い情報なしですべてのメンバー情報を見つけることができます。しかし、3番目のテーブルを追加しようとすると、不正なデータが返されます(たとえば、グループにないメンバーを取得するなど)。これは、私が使用している基本的なクエリです:
SELECT
p.*,
m.first_name,
m.last_name
FROM
members m,
payments p,
member_to_group mg
WHERE
mg.group_id = 12
AND mg.member_id = p.member_id
AND m.member_id = p.member_id
私はどこに切断されているかは分かりませんが、どんな援助でも大歓迎です。
ANSIを使用しての習慣に取得するには、(galadorの答えのように)結合構文を。読むのが簡単で、論理的な誤りがしばしば強調されます。 –
@Nick、これはSQL89です。 Explicit JOINはSQL92です。:-) – gbn
ここで使用されているような暗黙的な結合は、SQLの反パターンです。この誤った構文は、1992年に読んだり保守したり、誤った相互結合を起こす可能性が少なくなるように置き換えられました。 – HLGEM