mysql - 从表中选择多个不同的值并评估它们以匹配表中的值

标签 mysql mysql-workbench sql-like

我在尝试弄清楚如何选择具有多个值的多个记录时遇到了一些麻烦。让我试着分解一下。

我有两个表。

表 1:疾病

enter image description here

表 2:症状

enter image description here

我想做的是当用户输入症状时,它会遍历疾病表并找到与其相关的匹配症状,然后返回具有给定症状的疾病。

这是我目前的 SQL 查询:

select a.diseases_id, a.disease_name
from diseases a, symtoms b 
where a.diseases_id = b.diseases_id
and b.symtom_description like '%Cough%' AND b.symtom_description like '%Sore throat%';

现在的问题是这个 SQL 查询什么都不返回,但是如果我删除 AND 语句,它会返回所有症状中包含“咳嗽”的疾病,但这不是我想要的。我应该能够选择一堆症状,如果一种疾病具有所有给出的症状并且它们匹配,它将返回该疾病。对于我发布的查询,它应该返回“胃食管反流”,因为这种疾病只包含咳嗽喉咙痛。

任何人都可以告诉我如何使这项工作成功吗?

谢谢!

最佳答案

没有包含“咳嗽”“喉咙痛”的行,因此您当然会得到一个空结果。

我会尝试这样的事情(未经测试):

select a.diseases_id, a.disease_name, b.symtom_description
from diseases a, symtoms b 
where a.diseases_id = b.diseases_id
and (b.symtom_description like '%Cough%' OR b.symtom_description like '%Sore throat%')
group by a.diseases_id
having count(a.diseases_id)=2

关于mysql - 从表中选择多个不同的值并评估它们以匹配表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215423/

相关文章:

php - LIKE % XX(YY)GG % 在 MySQL 中不起作用

mysql - 从数组中查找字符串

mysql-workbench - 使用 MySQL Workbench 创建多态关联

MYSQL Workbench - 触发器不检查我的插入

mysql - 找出日期之间的差异

php - 有没有办法在 php 和 mysql 中实现树 ADT?

带有 'like' 和 'or' 的 Spring JPA @Query where 子句

java - 为什么更新mysql用户权限后必须重启服务?

mysql - 如何在 MySQL 中转义特殊字符?

php - jQuery AJAX POST 到 mysql 表以获取动态表数据-我是否以正确的方式执行此操作?