在MySQL中过滤行选择

时间:2016-03-07 18:12:12

标签: mysql

我有一个查询,我需要过滤包含特定元素的行(分组)。让我们更详细地解释一下:我有一组对象,每个对象都有自己的'object_id',以及由对象子集组成的集合。

我的查询尝试从用户那里获取作为参数传递的object_id的所有集合。

我的查询是:

SELECT cn.*, (SELECT COUNT(*) FROM collection_items WHERE collection_id=cn.id) as n_items, 0 as selected, COALESCE(lo.url_thumb, '/img/no-image.png') as image
FROM collection_names as cn LEFT JOIN list_objects as lo ON lo."ID"=cn.image_object_id LEFT JOIN collection_items as ci ON ci.collection_id=cn.id
WHERE cn.user_id=44 AND ci.object_id<>86127
GROUP BY cn."id", lo.url_thumb

查询返回所有集合。我认为这是由于一个集合有很多对象并且被分组,条件不正确。

有什么想法吗?

修改: 假设我有下表:

enter image description here

在object_id = 10的情况下应用上面的选择,所需的响应是由于还包括这样的object_id而不包括collection_id = 1,因此响应:[2,3,4,5]。我只想检索不包含作为参数传递的object_id的集合。

我希望这一点澄清一点。

0 个答案:

没有答案