Ich habe eine Tabelle namens ROOM.SQL-Auswahl mit Join
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
Und auch eine Tabelle namens SESSION.
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
Ich mag würde eine SELECT-Anweisung erstellen mit JOIN, dass die Details SESSION (ID, BUILDINGNO und ROOMNO) angezeigt werden, die nicht in BUILDINGNO ‚B2‘ sind und die ROOMCAPACITY haben muss> 180 Ergebnisse auch sind um doppelte Werte auszuschließen.
Ich versuchte, die Anweisung zu verwenden:
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';
aber es ist nicht ganz richtig ... jemand mir zeigen konnte, wie dieses Problem zu beheben, bitte?
Was ist der Datentyp von 'ROOMCAPACITY'? und was ist dein Problem? – Ravi
Sie sollten sowohl in den Spalten "BUILDINGNO" als auch in der Spalte "ROOMNO" der Tabelle beitreten. – MKR
Ich glaube 'CONSTRAINT SESSION_FK1 FREMD KEY (BUILDINGNO) REFERENCES BUILDING (BUILDINGNO),' FK ist von großem Nutzen, da Sie 'SESSION_FK2' auf beiden Spalten (BUILDINGNO, ROOMNO)' 'haben. – MKR