我有一个包含以下列的表
count(*)=2
我需要一个返回所有唯一的drug_name的查询,其中drug_id相同,image_filename匹配,AND cat_id = 3 AND desc_id = 6 AND cat_id = 5 AND desc_id = 3.
换句话说,我需要一些带有socket.io-redis
的GROUP BY逻辑,但由于我需要某些列条件对于匹配不同,所以无论我尝试什么都不起作用。
现在,我返回所有已排序的行并使用seq逻辑和计数器来检查条件和所有废话,我真的希望找到一个可以在SQL中完成所有操作的查询。
答案 0 :(得分:2)
一种简单的方法是使用带有having
子句的聚合:
select drug_name, drug_id, image_filename
from t
group by drug_name, drug_id, image_filename
having sum(cat_id = 3 and desc_id = 6) > 0 and
sum(cat_id = 5 and desc_id = 5) > 0;
having子句中的每个条件都会检查是否存在其中一个值组合。