Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php 多对多关系MYSQL-根据用户输入选择数据,例如症状_Php_Mysql_Many To Many - Fatal编程技术网

Php 多对多关系MYSQL-根据用户输入选择数据,例如症状

Php 多对多关系MYSQL-根据用户输入选择数据,例如症状,php,mysql,many-to-many,Php,Mysql,Many To Many,我有三张桌子 我想按照症状匹配的数量来排序疾病,症状由最终用户输入并存储在变量$searchSymptoms中 我试着用一些改动来跟踪查询,得到了一个非常奇怪的结果 SELECT DISTINCT ailments.ailmentName,COUNT(symptoms.symptomID) AS count FROM ailments LEFT JOIN jnctn_ailments_symptoms ON ailments.ailmentID = jnctn_ailments_sympto

我有三张桌子

我想按照症状匹配的数量来排序疾病,症状由最终用户输入并存储在变量$searchSymptoms中

我试着用一些改动来跟踪查询,得到了一个非常奇怪的结果

SELECT DISTINCT ailments.ailmentName,COUNT(symptoms.symptomID) AS count 
FROM ailments LEFT JOIN jnctn_ailments_symptoms ON ailments.ailmentID = jnctn_ailments_symptoms.FK_ailmentID 
LEFT JOIN symptoms ON ailments.ailmentID = jnctn_ailments_symptoms.FK_ailmentID 
GROUP BY ailments.ailmentName ORDER BY count DESC
结果:

如果有答复,我将不胜感激


关于

查询可以写如下:

SELECT ailmentID, ailmentName, ailmentSymptomCount
FROM ailments a
     LEFT JOIN(
         SELECT FK_ailment_id, COUNT(FK_symptom_id) AS ailmentSymptomCount 
                FROM jnctn_ailments_symptoms GROUP BY FK_ailment_id
     ) temp
    ON a.ailmentID = temp.FK_ailment_id

查询可以编写如下:

SELECT ailmentID, ailmentName, ailmentSymptomCount
FROM ailments a
     LEFT JOIN(
         SELECT FK_ailment_id, COUNT(FK_symptom_id) AS ailmentSymptomCount 
                FROM jnctn_ailments_symptoms GROUP BY FK_ailment_id
     ) temp
    ON a.ailmentID = temp.FK_ailment_id

谢谢您的回答,您知道我可以将症状的where子句放在哪里吗。e、 g.在这种情况下,如果SympleName=$varIn,则需要修改参与左连接的子查询。因此,您必须:
选择FK_-ailment_-id,将(FK_-symptom_-id)计数为jnctn_-Ailts_-symptoms jas的内部连接症状s在jas.FK_-symptom_-id=s.symptomID和symptomName='fever'组(按FK_-Ailt_-id
)。请注意,
ailmentSymptomCount
现在完全取决于您手动向查询提供的症状数量。是这样要求的还是我误解了什么?首先谢谢你抽出时间。场景是,我从搜索表单中获取符号,然后在症状表中查找它们的ID,获取这些ID并从连接表中查找相应的疾病ID,最后使用这些相应的疾病ID获取相应的疾病名称。简而言之,我希望通过症状搜索获得疾病名称,有点像伊莎贝尔症状检查器。但这是相当好的程序。谢谢你的回答,知道我可以把症状的where子句放在哪里吗。e、 g.在这种情况下,如果SympleName=$varIn,则需要修改参与左连接的子查询。因此,您必须:
选择FK_-ailment_-id,将(FK_-symptom_-id)计数为jnctn_-Ailts_-symptoms jas的内部连接症状s在jas.FK_-symptom_-id=s.symptomID和symptomName='fever'组(按FK_-Ailt_-id
)。请注意,
ailmentSymptomCount
现在完全取决于您手动向查询提供的症状数量。是这样要求的还是我误解了什么?首先谢谢你抽出时间。场景是,我从搜索表单中获取符号,然后在症状表中查找它们的ID,获取这些ID并从连接表中查找相应的疾病ID,最后使用这些相应的疾病ID获取相应的疾病名称。简而言之,我希望通过症状搜索获得疾病名称,有点像伊莎贝尔症状检查器。但这是相当好的程序。当做