अब जब आपने और विस्तार से बताया है कि आप वास्तव में क्या हासिल करना चाहते हैं, तो यह देखा जा सकता है कि समस्या कहीं अधिक जटिल है। आप वास्तव में subscriber_id
. के सभी संयोजन चाहते हैं और tag_id
, और फिर सम्मिलित तालिका उत्पाद में वास्तविक प्रविष्टियों की संख्या की गणना करें। वाह। तो यहाँ SQL जाता है:
SELECT combinations.tag_id,
combinations.subscriber_id,
-- correlated subquery to count the actual hits by tag/subscriber when joining
-- the two tables using content_id
(SELECT count(*)
FROM content_hits AS h
JOIN content_tag AS t ON h.content_id = t.content_id
WHERE h.subscriber_id = combinations.subscriber_id
AND t.tag_id = combinations.tag_id) as cnt
-- Create all combinations of tag/subscribers first, before counting anything
-- This will be necessary to have "zero-counts" for any combination of
-- tag/subscriber
FROM (
SELECT DISTINCT tag_id, subscriber_id
FROM content_tag
CROSS JOIN content_hits
) AS combinations