我創建了一家醫院的數據庫,並且「管理層想知道去年有多少人被診斷患有癌症」。Oracle中的SQL查詢
CREATE TABLE patients (
ID_patients INTEGER NOT NULL,
Name VARCHAR NOT NULL
);
CREATE TABLE visit(
ID_visit INTEGER NOT NULL,
DATE_visit DATE NOT NULL,
FK_patients INTEGER NOT NULL,
);
CREATE TABLE Diagnosis(
ID_Diagnosis INTEGER NOT NULL,
FK_disease INTEGER NOT NULL
FK_visit INTEGER
);
CREATE TABLE Disease(
ID_disease INTEGER NOT NULL,
Name_disease VARCHAR NOT NULL
);
現在,我們需要弄清楚:使病人得到了去年診斷出患有癌症。 我使用下面的查詢來獲得去年訪問過的患者,但我不知道如何針對癌症患者?我想我應該使用「VIEW AS」,但我不確定。
SELECT *
FROM Visit
WHERE Date_Visit BETWEEN
(CURRENT_DATE - interval '2' year) AND CURRENT_DATE - INTERVAL '1' YEAR;
這是壞的語法...使用JOIN – DanK
是的,加入也可以做到這一點。隨時重新輸入。 ;)相當一段時間,我不得不使用oracle,但是當時老公司使用了我以上使用的語法 – Tyron78
'JOIN'實際上是一個ANSI標準,所以它不是特定於Oracle。您在WHERE子句中的上述連接仍然會解析,但現在認爲這種連接表過期的做法已過時。它與舊的Oracle'(+)'和'( - )'外部連接語法類似......他們提出了一種更好的方法,但是爲了向後兼容而保留舊的方法。 – DanK