如何隔离查询以查找特定字段?

时间:2018-05-16 05:59:12

标签: mysql sql join sql-like

以下是我使用的数据库:https://drive.google.com/file/d/1ArJekOQpal0JFIr1h3NXYcFVngnCNUxg/view?usp=sharing

我试图创建一个查询来输出的学者(acnum) 感兴趣的是"数据" (描述)字段。

我试过了:

select acnum
from interest
where upper(descrip) like '%DATA%';

它部分有效,它找到了对数据'数据'对字段(描述)感兴趣的学者(acnum)。在他们的名字中,但它也列出了除了' Data'之外还有其他兴趣的学者(acnum)。我如何在“数据”中找到感兴趣的学者(acnum)?字段(记述)?

谢谢。

2 个答案:

答案 0 :(得分:0)

要获得仅对“数据”感兴趣的学者(acnum)字段(descrip)您可以使用以下查询和一些聚合来满足您的条件

SELECT acnum
FROM interest
GROUP BY acnum
HAVING COUNT(*) = SUM(CASE WHEN UPPER(descrip) LIKE '%DATA%' THEN 1 ELSE 0 END)

答案 1 :(得分:0)

另一种方法 - 如果您想要更多关于学术的专栏 - 是not exists

select a.*
from academics a
where not exists (select 1
                  from interest i
                  where a.acnum = i.acnum and upper(descrip) like '%DATA%'
                 );