Sql 如何在所有';许多';结果是否符合条件?

Sql 如何在所有';许多';结果是否符合条件?,sql,one-to-many,Sql,One To Many,我有一个一对多的关系项ID到项注释。如何编写一个只返回每个注释都包含关键字的条目ID的查询。相反,即使其中一个音符符合条件,我也会得到ID。这是我得到坏结果的查询 select count (distinct I.IDs) from Items I left join Item_Stats IS on I.ItemID = IS.FKItemID where I.Deleted = 0 and IS.Deleted = 0 and IS.Description like '%Bambo

我有一个一对多的关系项ID到项注释。如何编写一个只返回每个注释都包含关键字的条目ID的查询。相反,即使其中一个音符符合条件,我也会得到ID。这是我得到坏结果的查询

select

count (distinct I.IDs)

from

Items I
left join Item_Stats IS on I.ItemID = IS.FKItemID

where

I.Deleted = 0 and
IS.Deleted = 0 and
IS.Description like '%Bamboo%'
编辑:为了简化,我对查询进行了一些编辑


通过查询,我得到结果1,3,6,9。我需要的是3和9。你不需要加入。您可以单独从Item_stats表获取数据,如下所示

SELECT FKItemID
FROM Item_Stats
WHERE DELETED=0
GROUP BY FKItemID
HAVING COUNT(*)=SUM(IF(UPPER(Description) LIKE '%BAMBOO%',1,0));

帮助我们帮助您-请共享您的表结构、一些示例数据以及您试图获取的该示例结果。为什么
I.FKItemID为NULL
?向您的问题中添加一些示例和预期数据。我已编辑了原始帖子。@cdaiga我将删除该部分,以免混淆。我明白了,这是一个很酷的想法,但它返回了一个错误,期望在最后一个括号中出现一些东西。我不知道为什么每个支架都关好了。你知道吗?谢谢你的帮助!仅供参考,当我添加一个部分时,它起了作用,因此它变成了:COUNT(*)等于SUM(上限(说明),比如“%bambor%”,而不是1,否则为0 end);谢谢,我刚刚调整了我的查询!