subquery returns more than 1 row

后端 未结 2 1295
小蘑菇
小蘑菇 2021-01-04 12:42
select 
    disease_name 
from 
    disease 
where 
    disease_id=
    (select disease_id from disease_symptom where
        disease.disease_id=disease_symptom.dise         


        
2条回答
  •  天命终不由人
    2021-01-04 12:57

    Breaking your query down, you have

    Main query:

    select disease_name from disease where disease_id=
    

    Subquery 1:

    select disease_id from disease_symptom where
            disease.disease_id=disease_symptom.disease_id AND 
            symptom_id=
    

    Sub query 2:

    select symptom_id from symptom where symptom.symptom_id=disease_symptom.symptom_id
                AND symptom_name='fever' OR symptom_name='head ache'
    

    Since you are using equal signs, the subqueries cannot return multiple items. It looks like sub query 2 has a greater chance to return 2 items due to the OR being used. You may wish to try IN clause such as WHERE symptom_id IN (sub-query2) with WHERE disease_id IN (sub-query1)

提交回复
热议问题