私は3つのテーブルを持っています
resources_connection
- resource_id
- resource_tag_id
resources_flags
- ユーザーID
- resource_id
resources_votes
- ユーザーID
- resource_id
それぞれが 2 列のテーブルで、単一の「リソース ID」に基づいてタグ、フラグ、および投票の数をクエリできるように設計された両方の int (11) です。
現在、このクエリを使用して、タグ ( resources_connection
)、フラグ ( resources_flags
)、および投票 ( resources_votes
)の数を取得しようとしています。
SELECT COUNT(DISTINCT t1.resource_id) as votes,
COUNT(DISTINCT t2.resource_id) as flags,
COUNT(DISTINCT t3.resource_tag_id) as tags
FROM ecruit_demo.resources_votes t1
LEFT JOIN ecruit_demo.resources_flags t2
ON (t1.resource_id = t2.resource_id)
JOIN ecruit_demo.resources_connection t3
ON (t1.resource_id = t3.resource_id) WHERE t1.resource_id = 4
問題は、このクエリが適切な結果を返すことですが、 4resource_id = 1
(タグがある)に設定resource_id
すると、すべてゼロが返されることです。このクエリが常に適切なタグ、フラグ、および投票の数を特定の.resource_id
データベースでresource_id = 4が発生する唯一の場所はresources_connectionであることも追加する必要があります。他の2つのテーブルにはこの値がありません