Rédigez des sous-requêtes pour obtenir le nombre total de clics et de ventes pour chaque annonce dans la plage de dates. Joignez-les à l'ad
table pour obtenir le nom de l'annonce et le product
table pour obtenir les noms des produits. Combinez les noms de produits en utilisant GROUP_CONCAT
.
SELECT ad.ad_name, IFNULL(clicks, 0) AS clicks, IFNULL(product_sale, 0) AS product_sale, IFNULL(GROUP_CONCAT(DISTINCT p.product_name), '') AS products
FROM ad
LEFT JOIN (
SELECT ad_id, SUM(clicks) AS clicks
FROM ad_insight
WHERE date BETWEEN '2021-04-23' AND '2021-04-25'
GROUP BY ad_id
) AS ai ON ai.ad_id = ad.ad_id
LEFT JOIN (
SELECT ad_id, SUM(sale) AS product_sale
FROM ads_products AS ap
LEFT JOIN product_insight AS pi ON pi.product_id = ap.product_id
WHERE date BETWEEN '2021-04-23' AND '2021-04-25'
GROUP BY ad_id
) AS pi ON pi.ad_id = ad.ad_id
LEFT JOIN ads_products AS ap ON ap.ad_id = ad.ad_id
LEFT JOIN product AS p ON ap.product_id = p.product_id
GROUP BY ad.ad_id