我的数据库中有一个具有以下结构的表:

obj_id - rel_val
4034 - 7366
4034 - 7387
4035 - 7366
4035 - 8051
4035 - 8057

字段“ obj_id”-它是商品ID字段。 字段“ rel_val”-属性值ID。 例如。 项目ID为4034的T恤。设置了属性颜色“红色”,ID为7366。属性大小为“ M”(此属性值的ID为7387)。

我应该如何编写正确的SQL查询以获取所有颜色为“红色”,大小为“ M”以及其他更多内容的项目。

我现在所拥有的:

$sth = $dbh->prepare("SELECT obj_id 
FROM cms3_object_content WHERE rel_val IN ('7343','7355','7368') LIMIT 100");
$sth->execute();
$result = $sth->fetchAll();

我尝试使用运算符IN,但是如果有任何数值,则返回obj_id。

PS:抱歉,我的英语不好。 我希望它能理解我的需求。

===============>>#1 票数:3 已采纳

SELECT obj_id 
FROM cms3_object_content 
WHERE rel_val IN ('7343','7355','7368') 
group by obj_id 
having count(distinct rel_val) = 3
LIMIT 100

  ask by Arman translate from so

未解决问题?本站智能推荐: