Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL查询需要很多时间才能响应_Mysql_Sql Server_Query Builder - Fatal编程技术网

Mysql 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_

我有一个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`
选择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语句括在括号中,否则它会将前后的所有内容作为单独的语句处理。如果这已经解决了问题,那么请随意标记为接受答案并投票。