2016-08-06 19 views
0

出席テーブル(MEMBER_ID & MEETING_ID)とミーティングテーブルの1つの列と、MEETING_IDと一致する名前を表示するメンバーテーブルの2つの列を表示する必要があります。異なるテーブルから列を選択

出欠表が

複合キー(MEMBER_ID *、MEETING_ID *)を持つメンバテーブルの主キーは、MEMBER_ID

会議テーブルの主キーは、私の試みは、することができます動作していないMEETING_ID

です誰か助けてください?

MEMBER_ID MEETING_ID MEETING_NAME  FIRSTNAME LASTNAME 
0001   MEET0004  SPORTS DAY  JOHN   SMITH 
+0

あなたが書いたWHERE句は常に真ですから、削除することもできます。あなたはおそらくMEETING.MEMBER_ID = ATTENDANCE.MEMBER_IDを意味しました。出席と出席者の間の結合条件も必要です。それでは、SQL標準のjoin構文(ATTENDANCE join MEETING on(条件)join MEMBER on(条件)...)を使用する方が良いでしょう。最後に、結果に1つの行だけ、またはすべての一致する行が必要ですか? 1行だけの場合、おそらくMEMBER_ID = ...のようないくつかのWHERE条件が不足している可能性があります。ああ、SELECTでフィールドを必要とするテーブルを指定する必要があります – mathguy

+0

FallAndLearnの答えはあなたには役立ちますが、 Explicitは暗黙のうちにExplicit Join Syntaxを使用する必要があります.Explicitは何十年もANSI標準として存在していたからです。 – Matt

答えて

1

は、あなたがこれを必要とするかもしれませ:

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

最終的な結果は、する必要があります。

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; 
1
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 
; 

明示的に使用構文に参加し、セットアップあなたの関係をON状態とテーブル間のキーを使用して。注意:また、テーブルのエイリアスを使用してタイプを短くしました。

関連する問題