私はROOMと呼ばれるテーブルを持っています。参加を使用してSQLを選択
CONSTRAINT ROOM_PK PRIMARY KEY(BUILDINGNO,ROOMNO),
CONSTRAINT ROOM_FK1 FOREIGN KEY(BUILDINGNO) REFERENCES BUILDING(BUILDINGNO));
BUILDINGNO | ROOMNO | ROOMCAPACITY
-----------+--------+-------------
B1 | R1 | 121
B1 | R2 | 253
B2 | R1 | 275
B2 | R2 | 126
B2 | R3 | 124
B3 | R1 | 256
B3 | R2 | 324
B4 | R1 | 431
B4 | R2 | 345
B4 | R3 | 231
また、SESSIONという表もあります。
BUILDINGNO「B2」に含まれていない、私はSESSION(ID、BUILDINGNOとROOMNO)の詳細が表示されている、JOINを使用してSELECT文を作成したいと思いますCONSTRAINT SESSION_PK PRIMARY KEY(SESSIONID),
CONSTRAINT SESSION_FK1 FOREIGN KEY(BUILDINGNO) REFERENCES
BUILDING(BUILDINGNO),
CONSTRAINT SESSION_FK2 FOREIGN KEY(BUILDINGNO,ROOMNO) REFERENCES
ROOM(BUILDINGNO,ROOMNO),
CONSTRAINT SESSION_FK3 FOREIGN KEY(SPEAKERID) REFERENCES SPEAKER(SPEAKERID));
SESSIONID | BUILDINGNO | ROOMNO | SPEAKERID
----------+------------+--------+----------
SS01 | B1 | R1 | S1
SS02 | B2 | R1 | S2
SS03 | B1 | R2 | S2
SS04 | B4 | R2 | S4
SS05 | B3 | R2 | S5
SS06 | B3 | R1 | S5
SS07 | B4 | R2 | S3
SS08 | B1 | R2 | S2
SS09 | B2 | R3 | S4
SS10 | B4 | R1 | S3
とROOMCAPACITYは> 180結果でもある持っている必要があります重複する値を除外します。
私はステートメントを使用してみました:
SELECT DISTINCT CONFERENCESESSION.SESSIONID, CONFERENCESESSION.BUILDINGNO, CONFERENCESESSION.ROOMNO
FROM CONFERENCESESSION
INNER JOIN ROOM ON ROOM.ROOMNO=CONFERENCESESSION.ROOMNO
WHERE CONFERENCESESSION.BUILDINGNO != 'B2'
AND ROOM.ROOMCAPACITY >= '180';
、それは非常に適切ではありませんが...誰かがこれをしてください修正する方法私を見るだろうか?
「ROOMCAPACITY」のデータタイプは何ですか?あなたの問題は何ですか? – Ravi
'BUILDINGNO'と' ROOMNO'カラムの両方でテーブルを結合する必要があります。 – MKR
'CONSTRAINT SESSION_FK1 FOREIGN KEY(BUILDINGNO)REFERENCES BUILDING(BUILDINGNO)とは思えません。'(BUILDINGNO、ROOMNO) 'の両方の列に' SESSION_FK2'があるので、FKは大いに役立ちます。 – MKR