mysql - 选择几个确切的值

时间:2015-05-17 10:59:24

标签: mysql

我的数据库中有一个表格,结构如下:

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

Field" obj_id" - 它的项目ID字段。字段" rel_val" - 属性值id。 例如。 ID为4034的物品T恤。有属性颜色"红色" ID为7366.且属性大小 - " M"(此属性值的ID为-7387)。

我应该如何编写正确的sql查询来获取所有带颜色的项目" red"和尺寸" 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。

P.S。对不起,我的英语不好。我希望它能理解我想要的东西。

1 个答案:

答案 0 :(得分: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