11

运行以下查询时,我收到一条错误消息

“查询表达式中的语法错误(缺少运算符)'diagnosis.Patient_No = 'Patient_No INNER JOIN Illness ON Illness.Illness_Code = Diagnosis.Illness_Code'

SELECT Patient.Last_Name AS LastName,
       Patient.First_Name AS FirstName,
       Patient.Gender AS Gender,
       Patient.Age AS Age,
       Illness.Illness_Desc AS illness,
       Medication.Medication_Desc AS Medication,
       Prescription.Dosage AS Dosage
FROM Patient
INNER JOIN Diagnosis ON Patient.Patient_No = Diagnosis.Patient_No
INNER JOIN Illness ON Diagnosis.Illness_Code = Illness.Illness_Code
INNER JOIN Prescription ON Patient.Patient_No = Prescription.Patient_No
INNER JOIN Medication ON Prescription.Medication_code = Medication.Medication_code

我确认 disease_code 都在 Illness 和 Diagnosis 表中,并且一切正常?不确定在此加入期间是否需要将这些疾病代码添加到 select 语句中?我尝试将它们添加到我的 Select 中,但这似乎对我也不起作用。

4

4 回答 4

7
Medication.Medication_Desc AS Medication,
Prescription.Dosage AS Dosage

看起来您的 FROM 语句中没有加入药物和处方表。

于 2013-02-08T02:45:40.957 回答
5

您没有为第一个联接中的第二个 Patient_No 列指定表。它应该是

INNER JOIN Diagnosis ON Diagnosis.Patient_No = Patient.Patient_No

您还从两个未加入的表中选择列 - 药物和处方。但是,这应该会给您一个不同的错误“无法绑定多部分标识符'Medication.Medication_Desc'。”

您遇到的具体错误听起来像我提到的第一个问题。这是一个有效的 SQL 过滤器,省略了药物/处方表。

SQL小提琴

于 2013-02-08T02:41:00.237 回答
0

INNER JOINS为其他两个表添加,

INNER JOIN Medication ON Medication.<> = Patient.<>

INNER JOIN Prescription ON Prescription.<> = Patient.<>
于 2013-02-08T02:47:39.270 回答
0

你不能仍然得到同样的错误......现在发生了什么?试试下面

 Select p.Last_Name LastName,
   p.First_Name FirstName,
   p.Gender Gender, p.Age Age,
   i.Illness_Desc illness,
   m.Medication_Desc Medication,
   s.Dosage Dosage
From Patient p
    Join Diagnosis d    On d.Patient_No = p.Patient_No
    Join Illness i      On i.Illness_Code = d.Illness_Code
    Join Prescription s On s.Patient_No = p.Patient_No
    Join Medication m   On m.Medication_code = p.Medication_code
于 2013-02-08T14:30:02.547 回答