Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    JOIN su 5 tabelle e COUNT()

    Salve a tutti

    Sto cercando di ottenere con una query i dati di una tabella e alcuni count su altre tabelle. Eccola qui:

    codice:
    	SELECT
    		gs_groups.*,
    		UNIX_TIMESTAMP(gs_groups.created_on) AS created_on_ts,
    		UNIX_TIMESTAMP(gs_groups.expires_on) AS expires_on_ts,
    		PERIOD_DIFF(gs_groups.expires_on, NOW()) AS remaining_ts,
    		gs_categories.name AS category_name,
    		COUNT(gs_subscriptions.id) AS subscriptions_count,
    		COUNT(gs_offers.id) AS offers_count,
    		COUNT(gs_comments.id) AS comments_count
    	FROM
    		gs_groups
    		LEFT JOIN
    		gs_categories
    			ON gs_categories.id = gs_groups.category_id
    		LEFT JOIN
    		gs_subscriptions
    			ON gs_subscriptions.group_id = gs_groups.id
    		LEFT JOIN
    		gs_offers
    			ON gs_offers.group_id = gs_groups.id
    		LEFT JOIN
    		gs_comments
    			ON gs_comments.group_id = gs_groups.id
    	WHERE
    		gs_groups.id = XX
    	GROUP BY
    		gs_groups.id
    Il problema è che il conto di comments e subscriptions mi risulta errato. C'è qualche errore nei join?

    Grazie infinite!

  2. #2
    ciccio, lo sai che devi indicare quale db stai usando. dai, rispettiamolo 'sto regolamento

  3. #3
    Ops, sorry! Il database è Mysql (versione 5.5.16) e le tabelle sono naturalmente InnoDB.

  4. #4
    Ciao a tutti

    Forse ho trovato la soluzione, ma vorrei una conferma. La query sembra funzionare se al posto di COUNT() uso COUNT(DISTINCT(()). Vi risulta?

    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.