オブジェクト3にはゼロを超える属性(a3)が1つあるため、結果として1が得られるはずです。私はグループ化しようとしましたが、うまく動作しませんでした。MySQL JOINとGROUP BY
削減声明
SELECT COUNT(IF(a3 > 0, TRUE, NULL)) AS a3
FROM objects AS o
LEFT JOIN attribs AS a ON o.id=a.oid
LEFT JOIN group_ref AS gx ON gx.oid = o.id
削減テーブル
attribs
------------
oid | attrib | value
------------------------
1 | a1 | 3
2 | a2 | 0
3 | a3 | 1
objects
------------
id | title
------------
1 | obj1
2 | obj2
3 | obj3
groups
------------
id | title
------------
1 | g1
2 | g2
3 | g3
group_ref
------------
gid | oid
------------
1 | 1
1 | 2
2 | 1
3 | 3
3 | 2
3 | 1
基本的な構造は、実際のクエリがはるかに大きいので、滞在しています。 – Mike