我有一个像
这样的 SQL 查询SELECT c.Case_Id, c.Disease_Sub_Type_Id, p.MedRecNo
FROM case1 c, patient p, episode e, personal_medical_history pmh, reproductive_history rh
WHERE c.Age <> '12' AND c.horizontal_spread <> '21' AND c.Patient_Id = p.Patient_Id
AND e.Case_Id = c.Case_Id AND pmh.Patient_Id = p.Patient_Id
AND rh.Patient_Id = p.Patient_Id
GROUP BY c.Case_Id`
当我使用上面的查询时,这会很快给出结果,但是当我使用 OR 作为条件时,比如
SELECT c.Case_Id, c.Disease_Sub_Type_Id, p.MedRecNo
FROM case1 c, patient p, episode e, personal_medical_history pmh, reproductive_history rh
WHERE c.Age <> '12' OR c.horizontal_spread <> '21' AND c.Patient_Id = p.Patient_Id AND e.Case_Id = c.Case_Id AND pmh.Patient_Id = p.Patient_Id
AND rh.Patient_Id = p.Patient_Id
GROUP BY c.Case_Id`
我没有得到输出并且 MySQL 挂起。是否有任何简单的方法来申请加入或我的方法是错误的?
最佳答案
尝试像这样将您的 OR 括在括号中;
SELECT c.Case_Id
,c.Disease_Sub_Type_Id
,p.MedRecNo
FROM case1 c
,patient p
,episode e
,personal_medical_history pmh
,reproductive_history rh
WHERE (c.Age <> '12'
OR c.horizontal_spread <> '21')
AND c.Patient_Id = p.Patient_Id
AND e.Case_Id = c.Case_Id
AND pmh.Patient_Id = p.Patient_Id
AND rh.Patient_Id = p.Patient_Id
GROUP BY c.Case_Id`
关于mysql - SQL查询需要很长时间才能响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36935499/