-2

我目前正在尝试创建一个查询,以便我可以显示哪些患者在特定日期进行了手术,但是我一直遇到这个问题

[Err] 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 ); 
4

3 回答 3

0

您的表Patient实际上称为Operation.

也许这就是你烦恼的根源。

于 2013-01-15T02:30:23.443 回答
0

编辑:删除代码片段。

即使您澄清了:Operation vs Patient 表,该查询也没有任何意义。您引用了 2 个表(让我们忽略 Operation,而专注于 Patient 和 Doctor),而您只从一个表中选择。

于 2013-01-15T02:36:53.577 回答
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';

如果您在学习连接语法方面需要帮助,那么这里有一个很好的连接可视化解释

于 2013-01-15T02:54:27.447 回答