在运营商中使用Mysql

在运营商中使用Mysql,mysql,Mysql,我有下表: id_attribute id_product_attribute 1 1 13 1 4 2 13 2 SELECT id_product_attribute FROM ps_product_attribute_combination WHERE id_product_attribute = 1 AND id_attribute IN (1,13) GROUP

我有下表:

id_attribute  id_product_attribute
1             1
13            1
4             2
13            2
SELECT id_product_attribute 
  FROM ps_product_attribute_combination 
 WHERE id_product_attribute = 1 
   AND id_attribute IN (1,13) 
 GROUP 
    BY id_product_attribute  
我想获取具有
id\u属性的
id\u产品属性
1
13

我的问题如下:

id_attribute  id_product_attribute
1             1
13            1
4             2
13            2
SELECT id_product_attribute 
  FROM ps_product_attribute_combination 
 WHERE id_product_attribute = 1 
   AND id_attribute IN (1,13) 
 GROUP 
    BY id_product_attribute  
上述查询还返回
id\u product\u属性
2
,而不是仅返回
1
。我怎样才能做到这一点

有人能帮忙解决这个问题吗?

提前谢谢

这些链接可以帮助您:

从上述内容中,您可以使用:

SELECT id_product_attribute 
  FROM ps_product_attribute_combination 
 WHERE id_product_attribute = 1 
   AND id_attribute IN ('1','13') 
 GROUP 
    BY id_product_attribute  
    HAVING COUNT(DISTINCT ps_product_attribute_combination.id_attribute) = 2
因此,它将返回既在
id\u属性
中,又在
id\u属性
列中出现两次的结果(使用
Having
子句)


或者:

您的查询表明:

SELECT id_product_attribute 
  FROM ps_product_attribute_combination 
 WHERE id_product_attribute = 1 

所以实际上您总是选择
id\u product\u attribute=1
。所以MySQL的结果总是

,这是不可能的。您可能有一些不同的数据,而不是您提出的问题。使COUNT(*)=2(并删除WHERE子句)可能重复的