ビーインタラクティブ:
私は簡単なようで、クエリを達成しようとしているが、私はそれが正常に動作することはできません。ここに私のデータベーステーブルの構造です:
members
-> id
-> last_name
-> first_name
activities
-> id
registrations
-> id
-> member_id
tandems
-> id
-> activitie_id
-> registration_member_one
-> registration_member_two
ここで私が達成したいものです。
Mutlipleメンバーが活動に登録することができます。その後、私のグループタンデムによって登録。私が記載されているすべてのタンデムでのビューをしたいと私の問題があります。私は、クエリをしようとすると、それが何度も重複し、私に複数の行を提供します。
以下の表の例は、私が持っていると思います。
tandems.id | activities.id | registration_member_one.members.last_name | registration_member_two.members.last_name
1 | 3 | John Doe | Jane Doe
ここで私が働いているクエリです:
SELECT
tandems.*,
memberOne.id, memberOne.last_name, memberOne.first_name,
memberTwo.id, memberTwo.last_name, memberTwo.first_name,
memberOne_registration.member_id as memberOne,
memberTwo_registration.member_id as memberTwo
FROM tandems
JOIN registrations as memberOne_registration
ON memberOne_registration.member_id = tandems.registration_member_one
JOIN members as memberOne ON memberOne.id = memberOne_registration.member_id
JOIN registrations as memberTwo_registration
ON memberTwo_registration.member_id = tandems.registration_member_two
JOIN members as memberTwo ON memberTwo.id = memberTwo_registration.member_id
WHERE activitie_id = 3;
すべてのヘルプは大歓迎します!
グレース:
エラーが間違ったカラム(接合によって引き起こされるmember_id
の)registrations
を持つテーブルをtandems
テーブル代わりにカラムがregistrations.id
使用されるべきです。
SELECT
tandems.*,
memberOne.id, memberOne.last_name, memberOne.first_name,
memberTwo.id, memberTwo.last_name, memberTwo.first_name,
memberOne_registration.id as memberOne,
memberTwo_registration.id as memberTwo
FROM tandems
JOIN registrations as memberOne_registration ON memberOne_registration.id = tandems.registration_member_one
JOIN members as memberOne ON memberOne.id = memberOne_registration.member_id
JOIN registrations as memberTwo_registration ON memberTwo_registration.id = tandems.registration_member_two
JOIN members as memberTwo ON memberTwo.id = memberTwo_registration.member_id
WHERE activitie_id = 3;