[英]mysql - select on few exact values
我的数据库中有一个具有以下结构的表:
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:抱歉,我的英语不好。 我希望它能理解我的需求。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.