-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

編集:コードスニペットを削除しました。

re: Operation vs Patient テーブルを明確にしても、そのクエリは意味がありません。2 つのテーブルを参照し (Operation は無視して、Patient と Doctor に注目しましょう)、1 つのテーブルからのみ SELECT します。

于 2013-01-15T02:36:53.577 に答える
0

あなたのテーブルPatientは実際には と呼ばれてOperationいます。

それがあなたの悩みの元なのかもしれません。

于 2013-01-15T02:30:23.443 に答える
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 に答える