我正在構建查詢以顯示基於他們參與了多個事件的事實的運動員姓名。顯示參與一個以上事件的運動員姓名的SQL查詢
爲此,我不得不使用2個表所示:
CREATE TABLE ATHLETE(
ATHLETEID CHAR(4),
ATHLETEFIRSTNAME VARCHAR2(20),
ATHLETELASTNAME VARCHAR2(20),
ATHLETEDOB DATE,
REPCOUNTRY VARCHAR2(12),
COACHID CHAR(4),
CONSTRAINT ATHLETE_PK PRIMARY KEY(ATHLETEID),
CONSTRAINT ATHLETE_FK1 FOREIGN KEY(COACHID) REFERENCES COACH(COACHID));
CREATE TABLE RESULTS(
EVENTID CHAR(4),
ATHLETEID CHAR(4),
RANK NUMBER(1),
CONSTRAINT RESULTS_PK PRIMARY KEY(EVENTID,ATHLETEID),
CONSTRAINT RESULTS_FK1 FOREIGN KEY(EVENTID) REFERENCES EVENTSCHEDULE(EVENTID),
CONSTRAINT RESULTS_FK2 FOREIGN KEY(ATHLETEID) REFERENCES ATHLETE(ATHLETEID));
使用下面的查詢我能夠展現ATHLETEID已參與多個事件的,正是我掙扎是也顯示運動員的姓名,因爲它位於不同的表格中。我很確定我應該使用子查詢,但是我不確定如何構建它。
SELECT A.ATHLETEID FROM RESULTS A GROUP BY A.ATHLETEID HAVING COUNT(*) > 1;
提前感謝!
中工作如果我可以+10的ShoutCase評論,我會...... – Charleh 2014-10-05 08:58:05
@Richard:即使任何運動員分享一個名字,AthleteId會有所不同,因此它仍然可以工作。 – SylvainL 2014-10-05 09:04:49
@StuartLC&SylvainL你當然是對的(評論刪除) – Richard 2014-10-05 09:07:39