James B
James B

Reputation: 231

Selecting columns from different tables

I need to display two columns from my attendance table (MEMBER_ID & MEETING_ID) and one column from my meeting table and finally two columns from my member table which displays the names that match with MEETING_ID.

The attendance table has a composite key (MEMBER_ID*, MEETING_ID*)

The member table's primary key is MEMBER_ID

Meeting table's primary key is MEETING_ID

My attempt is not working, can someone please help?

SELECT MEMBER_ID, MEETING_ID, MEETING_NAME MEMBER_FIRSTNAME, MEMBER_LASTNAME
FROM ATTENDANCE, MEMBER, MEETING
WHERE MEETING.MEMBER_ID = MEETING.MEMBER_ID;

End result needs to be:

MEMBER_ID    MEETING_ID   MEETING_NAME     FIRSTNAME    LASTNAME
0001         MEET0004     SPORTS DAY      JOHN         SMITH

Upvotes: 0

Views: 136

Answers (2)

Matt
Matt

Reputation: 14341

SELECT
    a.MEMBER_ID
    ,a.MEETING_ID
    ,mt.MEETING_NAME
    ,mb.MEMBER_FIRSTNAME
    ,mb.MEMBER_LASTNAME
FROM
    ATTENDANCE a
    INNER JOIN MEMBER mb
    ON a.MEMBER_ID = mb.MEMBER_ID
    INNER JOIN MEETING mt
    ON a.MEETING_ID = mt.MEETING_ID
;

Use Explicit Join Syntax and then setup your relationships using the ON conditions and the keys between the tables. Note I also used table aliases to shorten typying.

Upvotes: 1

FallAndLearn
FallAndLearn

Reputation: 4135

May be you need this.

SELECT A.MEMBER_ID, A.MEETING_ID, M2.MEETING_NAME, M1.MEMBER_FIRSTNAME, M1.MEMBER_LASTNAME
FROM ATTENDANCE A, MEMBER M1, MEETING M2
WHERE M1.MEMBER_ID = A.MEMBER_ID
AND A.MEETING_ID = M2.MEETING_ID;

Upvotes: 1

Related Questions