Mysql SQL查询需要很多时间才能响应
我有一个SQL查询,比如Mysql SQL查询需要很多时间才能响应,mysql,sql-server,query-builder,Mysql,Sql Server,Query Builder,我有一个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_
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`
选择c.Case\u Id、c.Disease\u Sub\u Type\u Id、p.MedRecNo
病例1 c,患者p,事件e,个人病史pmh,生殖病史rh
其中c.年龄'12'和c.水平分布'21'和c.患者Id=p.患者Id
e.Case_Id=c.Case_Id和pmh.Patient_Id=p.Patient_Id
右侧患者Id=p患者Id
按c.Case\u Id分组`
当我使用上面的查询时,这会很快给出结果,但当我使用或作为条件时
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`
选择c.Case\u Id、c.Disease\u Sub\u Type\u Id、p.MedRecNo
病例1 c,患者p,事件e,个人病史pmh,生殖病史rh
其中c.年龄'12'或c.水平分布'21'和c.患者Id=p.患者Id和e.病例Id=c.病例Id和pmh.患者Id=p.患者Id
右侧患者Id=p患者Id
按c.Case\u Id分组`
我没有得到输出,MySQL被挂起。有没有简单的方法来应用join或者我的方法是错误的 试着像这样用括号括起你的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`
选择c.Case\u Id
,c.Disease\u Sub\u Type\u Id
,p.MedRecNo
来自案例1 c
,病人p
,第e集
,个人医疗史pmh
,生殖史rh
其中(c.年龄'12'
或c.水平排列(排列“21”)
c.患者Id=p.患者Id
e.Case\u Id=c.Case\u Id
pmh.Patient_Id=p.Patient_Id
右侧患者Id=p患者Id
按c.Case\u Id分组`
当然,最好将OR语句括在括号中,否则它会将前后的所有内容作为单独的语句处理。如果这已经解决了问题,那么请随意标记为接受答案并投票。