2013-01-15 73 views
-2

我目前正在試圖建立一個查詢,以便我可以顯示該患者的具體日期了一次手術,但我不斷收到這個問題查詢MySQL中未知列

[錯誤] 1054 - 未知列「字段列表」

我想實現查詢「Patient.PatientSurname」這是

SELECT Patient.PatientSurname, 
    Patient.PatientSex, 
    Patent.PatientAge, 
    Doctor.DoctorSurname, 
    Doctor.DoctorSpecialism 
FROM Operation 
WHERE (Operation.Date = ‘21/12/2010’); 

這可能與索引呢?

這是我對我的病人表

CREATE TABLE Patient 
(PatientCode VARCHAR (5) NOT NULL, 
PatientSurname VARCHAR (15) NOT NULL, 
PatientFirstName VARCHAR (15) NOT NULL, 
PatientSex VARCHAR (6) NOT NULL, 
PatientAge VARCHAR (3) NOT NULL, 
PatientOccupation VARCHAR (15) NOT NULL, 
PatientHeight VARCHAR (5) NOT NULL, 
PatientWeight VARCHAR (6) NOT NULL, 
PatientAddress VARCHAR (20) NOT NULL, 
PRIMARY KEY (PatientCode), 
); 


CREATE TABLE Operation 
(OperationCode VARCHAR (6) NOT NULL, 
PatientCode VARCHAR (5) NOT NULL, 
DoctorCode VARCHAR (6) NOT NULL, 
Date DATETIME NOT NULL, 
Result VARCHAR (10) NOT NULL, 
OperationType VARCHAR (15) NOT NULL, 
    PRIMARY KEY (OperationCode), 
    FOREIGN KEY (PatientCode) REFERENCES Patient(PatientCode) ON UPDATE CASCADE ON DELETE RESTRICT, 
FOREIGN KEY (DoctorCode) REFERENCES Doctor(DoctorCode) ON UPDATE CASCADE ON DELETE RESTRICT); 
+0

你似乎忘記加入表。 –

+0

你有「病人」和「醫生」的桌子嗎?你想讓它加入'Operation'? –

+0

是的,我有他們的表,我需要重新做我的代碼才能加入他們? – user1977206

回答

0

您的查詢的問題是您引用的表格patientsdoctor未加入operation表格。您需要加入這些其他表以獲取所需的數據。根據您所張貼的細節,你只需要加入你的表:

SELECT p.PatientSurname, 
    p.PatientSex, 
    p.PatientAge, 
    d.DoctorSurname, 
    d.DoctorSpecialism 
FROM Operation o 
INNER JOIN patient p 
    on o.PatientCode = p.PatientCode 
INNER JOIN doctor d 
    on o.DoctorCode = d.DoctorCode 
WHERE o.Date = '12-21-2010'; 

如果您需要幫助學習連接語法,那麼這裏是一個偉大的visual explanation of joins

+0

感謝這工作得很好,我肯定會需要做更多的修改你如何加入表 – user1977206

0

你的表Patient代碼實際上是所謂Operation

也許這是你的煩惱的來源。

+0

這是在這裏輸入代碼時的錯字,代表我代表道歉 – user1977206

+0

請複製/粘貼您的[testcase](http://sscce.org)。顯然,打字引入了拼寫錯誤。 –

0

編輯:刪除的代碼段。

即使您的澄清重新:操作與病人表,該查詢沒有任何意義。你引用2個表格(讓我們忽略操作,並專注於病人和醫生),而你只從一個選擇。

+0

仍然收到相同的錯誤 – user1977206

+0

你需要做的是將示例表內容粘貼到sqlfiddle.com中,然後我們可以理解你正在嘗試完成的內容,以及你參與的3個表的SHOW CREATE TABLE輸出。 – ajacian81

+0

這是我的作業表 CREATE TABLE操作 (操作代碼VARCHAR(6)NOT NULL, PatientCode VARCHAR(5)NOT NULL, DoctorCode VARCHAR(6)NOT NULL, 'Date' DATETIME NOT NULL, 結果VARCHAR(10)NOT NULL, OperationType VARCHAR(15)NOT NULL, PRIMARY KEY(操作代碼), 外鍵(PatientCode) 參考病人(PatientCode) ON UPDATE CASCADE ON DELETE RESTRICT, 外鍵(DoctorCode ) 參考醫生('DoctorCode ') ON UPDATE CASCADE ON DELETE RESTRICT ); – user1977206