我正在尝试创建一个查询,以便我可以显示哪些患者在特定日期进行了操作,但是我一直在解决这个问题
[Err] 1054 - “字段列表”中的未知列'Patient.PatientSurname'
我想要实现的查询是
SELECT Patient.PatientSurname,
Patient.PatientSex,
Patent.PatientAge,
Doctor.DoctorSurname,
Doctor.DoctorSpecialism
FROM Operation
WHERE (Operation.Date = ‘21/12/2010’);
这可能与索引有关吗?
这是我的Patient表的代码
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)
您的表格Patient
实际上称为Operation
。
也许这就是你烦恼的根源。
答案 1 :(得分:0)
编辑:删除了代码段。
即使您的澄清:操作与患者表,该查询也没有意义。您只能从一个表中选择2个表(让我们忽略操作,并专注于患者和医生)。
答案 2 :(得分:0)
您的查询存在的问题是您引用了未加入patients
表的表doctor
和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